Configure HTML/JavaScript

Showing posts with label JSON. Show all posts
Showing posts with label JSON. Show all posts

Saturday, March 30, 2013

json serialization

What is JSON

Json stands for JavaScript Object Notification. it represents data in object format so that javascript and understand it easily and manipulate it easily

it looks like as below:
[{"id":"83","text":"sales crescent"},{"id":"88","text":"sales grey bar"}]
 its just a simple array of two json object

keep in mind that, if you will find [] symbol it means it's a array of object. that means one or more then one json object may be there inside the space

like bellow
var mathTen = 
[{
"name": "Aniruddha Das",
"email": "someemailaddress@gmail.com
"valuepaids": [{"id":"83","text":"sales crescent"},{"id":"88","text":"sales grey bar"}]
}]

you can also iterate this object by using jQuery.each() ot any normal javascript loop.

here variable mathTen contain a array of json. again inside mathTen there valuepaids node which contains a array of json object.

there are ways to manipulate these json object hierarchy inside in side javascript code (i am not mentioning here as we can do that , i think so :) )

Where we need json serialization:

We need json serialization where we want to pass json from one place to another. like from one environment to another. like while sending json data from java/php/asp.net codes to javascript code thorugh ajax call.

Or sending json data as parameter from a dynamically created javascript function

But in some situations we need to create dynamic html codes and pass as json as as parameters if we are creating dynamic javascript functions in that like below
var yuyu = [{"id":"83","text":"sales crescent"},{"id":"88","text":"sales grey bar"}];
indObj=[{"id":"83","text":"sales crescent"}];


$("#divAllIndividuals")
            .append("+indObj[0].id+"','"+JSON.stringify(yuyu)+"','"+JSON.stringify(indObj)+"','"+indObj[0].text+"') title=\"Delete Entry\">\"");

there json variable (yuyu and indObj) will no more will be json in the called function if you will not serialize these function here. here the serialize concept come


what is json serialization:

Json serialization is nothing but it convert json object to string so that you can easily send that string from one environment to another or you can pass that string as parameter from a dynamically created javascript function.

Use of json serialization:

to serialize a json object we can use JSON.stringify() as we did in the above created dynamically created javascript function. this function will convert json object to string.

Again we have to deserialize the json object string in the called function  (if we are calling in as parameter in dynamic javascript function) or if we are receiving it from other language like java/php/asp.net.

to deserilize json object string we need to call JSON.parse(); it will again convert josn object string to json object so that we can use json nodes in your program.

var indObj = $.parseJSON(jsonpassedvariablehere);


that it. now you can send json data from anywhere in your program and can use that anywhere in your program by serialize and deserialize the objects

Thanks 

Monday, January 28, 2013

JSON: creating json in java and rendering javascript (JAVA string to JSON in javascript)

java string to json in javascript:


This is a common problem while we are transferring data from one technology to other technology. Specially encoding and decoding are concern while different format of data is required in different environment.

In my current piece of work i was required to create a JSON string in java and pass it to view (jsp) page where with the help of JavaScript (jQuery) data render need to perform.

common problem face

  • How to create a json data string in core java classes.
  • how to transfer json data from java to jsp 
  • How to convert normal java string to json object in javascript.  

Java does not understand json so for creating json in java various library are available. I picked simplest way like, I created a java string as like as json data and pass that string to the javascript. In the javascript end i converted that java string in to javascript string (by adding a null string like;var newval =  ""+strVariable). then with the help of jQuery.parseJSON() i converted it to the json object and renders. Below is the code which will describe in the details.

Ajax call from JSP:



       $(document).ready(function () {
        $.ajax({
        method:"GET",
        url: "user-struts action.action",
        //data: "variableifany="+$("#variableifany").val(),
        success: function(dataUser) {
//converting java string to javascript sting
//by adding null string ("") to the returned java string
        var yuyu = $.parseJSON(""+dataUser);
//simple testing of json object by calling jquery each function
$.each(yuyu, function(key, val) {
alert(val["id"]+"-"+val["text"]);
});
         
                     $("#divtoplace").select2({
                    multiple: true,
                       query: function (query){
                         var data = {results: []};
                         $.each(yuyu, function(){
                             if(query.term.length == 0 || this.text.toUpperCase().indexOf(query.term.toUpperCase()) >= 0 ){
                                 data.results.push({id: this.id, text: this.text });
                             }
                         });
                         query.callback(data);
                     }
                    });
         
        },
   error: function(XMLHttpRequest, textStatus, errorThrown){
       alert("errorThrown="+errorThrown+
        '----zipcodesuccessError=' + textStatus+"----response text = "+XMLHttpRequest.responseText);
   }
        });


JAVA class code: 

String userJson = "[";
                map= new userList().users();
for (Map.Entry entry : map.entrySet()) {
userJson += "{ \"id\": \""+entry.getKey()+"\", \"text\": \""+entry.getValue()+"\" },";
}
userJson = userJson.substring(0, userJson.length()-1)+"]";
System.out.println("jsodata="+userJson);
inputStream=new StringBufferInputStream(userJson);
return SUCCESS;



Important points to remember:

  • while creating json string in java do remember to match the json format like 
  • do remember to convert from java string to javascript string
  • now parse the javascript string to json object.
  • now your json object is ready to user.

Thanks