Configure HTML/JavaScript

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

No comments:

Post a Comment