json parser code

Problems with WiFi, SQLite ,Bluetooth, WiMax, Proxies, etc...

json parser code

Postby sarangkulkarni17 » Tue Feb 09, 2010 10:33 am

Hello everybody.

I searched tutorials for parsing response like
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}

but no one is posted code about this :x .

so,I have implemented parser for this,it is working fine for me :D .

In above response the curly brace { } represent object & square bracket [ ] represent array.


Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1.  
  2. public JsonParser(String string_Url) {
  3.  
  4. java.net.URL url = new java.net.URL(string_Url);
  5.  
  6.  
  7.  
  8.                         java.net.URLConnection conn = (java.net.URLConnection) url
  9.  
  10.                                         .openConnection();
  11.  
  12.                         conn.setDoOutput(true);
  13.  
  14.                         conn.setDoInput(true);
  15.  
  16.  
  17.  
  18.                         String line = Developer
  19.  
  20.                                         .convertStreamToString(conn.getInputStream());
  21.  
  22.  
  23.  
  24.                         Log.d("RES IS ", line);
  25.  
  26.                        
  27.  
  28.                         final JSONObject json = new JSONObject(line);
  29.  
  30.  
  31.  
  32.         checkForJSONObject(json);
  33.  
  34. }
  35.  
  36.  
  37.  
  38. /**
  39.  
  40.          * This is recursive function used for getting key value pair from array or
  41.  
  42.          * object In this nameArray gives field names & valArray gives contents
  43.  
  44.          * */
  45.  
  46.         private void checkForJSONObject(JSONObject jsonObject) {
  47.  
  48.                 try {
  49.  
  50.                         JSONArray nameArray = jsonObject.names();
  51.  
  52.                         JSONArray valArray = jsonObject.toJSONArray(nameArray);
  53.  
  54.                        
  55.  
  56.                         for (int i = 0; i < jsonObject.length(); i++) {
  57.  
  58.  
  59.  
  60.                                 // whenever there is array then control comes here
  61.  
  62.                                 if (valArray.get(i).getClass().isInstance(new JSONArray())) {
  63.  
  64.                                         JSONArray arr = jsonObject.getJSONArray(nameArray.get(i)
  65.  
  66.                                                         .toString());
  67.  
  68.  
  69.  
  70.                                         for (int j = 0; j < arr.length(); j++) {
  71.  
  72.                                                 if (nameArray.get(i).equals("Response")) {
  73.  
  74.                                                         int_responseCount++;
  75.  
  76.                                                         System.out.println("**************************** "+int_responseCount);
  77.  
  78.                                                 }
  79.  
  80.  
  81.  
  82.                                                 Object oo = arr.get(j);
  83.  
  84.                                                 if (oo.getClass().isInstance(new JSONArray())) {
  85.  
  86.                                                         System.out.println("IS ARRAY " + arr.get(j));
  87.  
  88.                                                 } else if (oo.getClass().isInstance(new JSONObject())) {
  89.  
  90.                                                         checkForJSONObject((JSONObject) oo);
  91.  
  92.                                                 } else {
  93.  
  94.                                                         System.out.println("name "
  95.  
  96.                                                                         + nameArray.get(i).toString() + " con "
  97.  
  98.                                                                         + arr.get(j).toString());
  99.  
  100.                                                        
  101.  
  102.                                                 }
  103.  
  104.  
  105.  
  106.                                         }
  107.  
  108.                                 } else if (valArray.get(i).getClass().isInstance(
  109.  
  110.                                                 new JSONObject())) {
  111.  
  112.                                         checkForJSONObject((JSONObject) valArray.get(i));
  113.  
  114.                                 } else {
  115.  
  116.                                        
  117.  
  118.  
  119.  
  120.                                         System.out.println(" NAME " + nameArray.get(i)
  121.  
  122.                                                         + "  CONTENT " + valArray.get(i));
  123.  
  124.                                 }
  125.  
  126.                         }
  127.  
  128.                 } catch (Exception e) {
  129.  
  130.                         System.out.println("Ex in checkForJsonObj " + e.toString());
  131.  
  132.                         e.printStackTrace();
  133.  
  134.                 }
  135.  
  136.  
  137.  
  138.         }
  139.  
  140.  
Parsed in 0.038 seconds, using GeSHi 1.0.8.4


Any suggestion from u is welcome.

I hope this will helpful for someone.
sarangkulkarni17
Developer
Developer
 
Posts: 29
Joined: Fri Feb 13, 2009 10:00 am
Location: Pune

Top

Return to Networking & Database Problems

Who is online

Users browsing this forum: Yahoo [Bot] and 4 guests