It's not a secret anymore!*
The moose likes HTML, CSS and JavaScript and the fly likes How to build and pass JSON objects back to a server? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » HTML, CSS and JavaScript
Bookmark "How to build and pass JSON objects back to a server?" Watch "How to build and pass JSON objects back to a server?" New topic
Author

How to build and pass JSON objects back to a server?

Max Tomlinson
Ranch Hand

Joined: Jul 17, 2001
Posts: 365
Hi all-
In our app, we are using seam remoting to pass objects to an xhtml client from our ejbs. This works very well but the client to server interaction is much more restricted and we can't pass complex objects back via seam.
So I need to send a collection of objects back to my java server ejb, format them as an XML doc and save.

I'm thinking of building JSON objects, posting them as a string and having my server side code use xstream to format xml.
I think this provides a structured interface compared to writing my own solution (hashmaps, name-value pairs, what-have-you).

Is there client side code that will help me do this in javascript? (build JSON objects?)
Or should I simply format the array of objects by hand into JSON? This doesn't seem too tough actually but I wanted to leverage any solutions already out there.

thanks!
Max
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61092
    
  66

What browsers are you supporting? Modern browsers will possess JSON.stringify().


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Max Tomlinson
Ranch Hand

Joined: Jul 17, 2001
Posts: 365
Hi Bear-
Thanks for the reply. We are supporting the usual suspects - IE 7+, FF.
I think I need to get up to speed on JSON. I was at a loss how to create the objects on the client side. I thought I had to physically code the syntax e.g. "[ :" etc.

But it seems I create the objects and use eval: e.g. this sample:

var arrayAsJSONText = '["Europe", "Asia", "Australia", "Antarctica",
"North America", "South America", "Africa"]';
var continents = eval( arrayAsJSONText );
alert(continents[0] + " is one of the " + continents.length + "
continents.");

or as you suggest:

alert("The JSON representation of the continents array is: " +
continents.toJSONString());

But I need objects with member variables e.g. a column object (one of our application objects) which contain various fields: width, alignment, etc. I want it to map to a pojo so I can pass it to the server and convert it to a pojo.

thanks

Max

Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61092
    
  66

Yeah, JSON supports that. You seem to be focused on arrays only. Visit json.org for a lot of info on JSON.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: How to build and pass JSON objects back to a server?