java
sql
c
ajax
mysql
database
linux
xcode
ruby-on-rails
regex
objective-c
visual-studio
eclipse
flash
json
perl
facebook
oracle
cocoa
php5
Here's a comprehensive example on how to use Gson with a list of objects. This should demonstrate exactly how to convert to/from Json, how to reference lists, etc.
Test.java:
import com.google.gson.Gson; import java.util.List; import java.util.ArrayList; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; public class Test { public static void main (String[] args) { // Initialize a list of type DataObject List<DataObject> objList = new ArrayList<DataObject>(); objList.add(new DataObject(0, "zero")); objList.add(new DataObject(1, "one")); objList.add(new DataObject(2, "two")); // Convert the object to a JSON string String json = new Gson().toJson(objList); System.out.println(json); // Now convert the JSON string back to your java object Type type = new TypeToken<List<DataObject>>(){}.getType(); List<DataObject> inpList = new Gson().fromJson(json, type); for (int i=0;i<inpList.size();i++) { DataObject x = inpList.get(i); System.out.println(x); } } private static class DataObject { private int a; private String b; public DataObject(int a, String b) { this.a = a; this.b = b; } public String toString() { return "a = " +a+ ", b = " +b; } } }
To compile it:
javac -cp "gson-2.1.jar:." Test.java
And finally to run it:
java -cp "gson-2.1.jar:." Test
Note that if you're using Windows, you'll have to switch : with ; in the previous two commands.
:
;
After you run it, you should see the following output:
[{"a":0,"b":"zero"},{"a":1,"b":"one"},{"a":2,"b":"two"}] a = 0, b = zero a = 1, b = one a = 2, b = two
Keep in mind that this is only a command line program to demonstrate how it works, but the same principles apply within the Android environment (referencing jar libs, etc.)
why would you want to convert a JSON to a java object when you need to use it in javascript.Json is the format i would prefer to have my data when i am using it in javascript. you can directly use this json string you get from the callback function in your JS like this
var JsonStringReceivedFromCallBack=callBackFunction(); var JsonResponse=JSON.parse(JsonStringReceivedFromCallBack); //or use jquery var i=0; for(i=0;i<5;i++){ alert(JsonResponse[i].a); //will give you int a alert(JsonResponse[i].b); //will give you string b }