2013-12-08 66 views
0
{"SrchResults":[{"FeatCount":"53"},{"NAME":"Dengue_Cluster","Number of cases":"10","HYPERLINK":"http://www.dengue.gov.sg/cms/ehd/20131647.jpg ","DESCRIPTION":"Ang Mo Kio Ave 3 (Blk 126, 127, 128)/Ang Mo Kio Ave 6 (Blk 124, 125)","MAPTIP":"Dengue_Cluster","SYMBOLCOLOR":"#E600A9","XY":"29342.6037999997,39300.7427999992"}{"NAME":"Dengue_Cluster","Number of cases":"11","HYPERLINK":"http://www.dengue.gov.sg/cms/ehd/20131578.jpg ","DESCRIPTION":"Guillemard Rd/Lor 28 Geylang/Lor 30 Geylang","MAPTIP":"Dengue_Cluster","SYMBOLCOLOR":"#E600A9","XY":"33644.5215999996,32574.9587999992"}]} 

如何提取上述数据?我想获得的使用android获取JSON值

  • 名称
  • 病例数
  • 超链接
  • 描述
  • Maptip
  • XY
+0

你尝试过什么? – geedubb

回答

0

使用此

JSONObject json = new JSONObject(jsonstring); 
json.getString("name"); 
.... 
0

Java有它自己的JSON库,虽然我更喜欢哪个更OO面向谷歌GSON:Google GSON

1
{ // json object node 
    "SrchResults": [ // jsona array 
     { 
      "FeatCount": "53" 
     }, 
     {    // json object node 
      "NAME": "Dengue_Cluster", // string 
      "Number of cases": "10", 
      "HYPERLINK": "http://www.dengue.gov.sg/cms/ehd/20131647.jpg ", 
      "DESCRIPTION": "Ang Mo Kio Ave 3 (Blk 126, 127, 128)/Ang Mo Kio Ave 6 (Blk 124, 125)", 
      "MAPTIP": "Dengue_Cluster", 
      "SYMBOLCOLOR": "#E600A9", 
      "XY": "29342.6037999997,39300.7427999992" 
     }, 
     { 
      "NAME": "Dengue_Cluster", 
      "Number of cases": "11", 
      "HYPERLINK": "http://www.dengue.gov.sg/cms/ehd/20131578.jpg ", 
      "DESCRIPTION": "Guillemard Rd/Lor 28 Geylang/Lor 30 Geylang", 
      "MAPTIP": "Dengue_Cluster", 
      "SYMBOLCOLOR": "#E600A9", 
      "XY": "33644.5215999996,32574.9587999992" 
     } 
    ] 
} 

Toparse

 try 
     { 
      JSONObject jObj = new JSONObject("My Json string"); 
      JSONArray jr = jObj.getJSONArray("SrchResults"); 
      JSONObject json = (JSONObject) jr.get(0); 
      String key = json.getString("FeatCount"); 
      Log.i("...........",key); 
      for(int i=1;i<jr.length();i++) 
      { 
       JSONObject jb= jr.getJSONObject(i); 
       String name = jb.getString("NAME"); 
       String nofcase = jb.getString("Number of cases"); 
       Log.i("Name is....",name); 
       Log.i("No of cases .........",nofcase); 

      } 
      }catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 

登录

12-08 09:53:32.212: I/...........(30147): 53 
12-08 09:53:32.212: I/Name is....(30147): Dengue_Cluster 
12-08 09:53:32.212: I/No of cases .........(30147): 10 
12-08 09:53:32.222: I/Name is....(30147): Dengue_Cluster 
12-08 09:53:32.222: I/No of cases .........(30147): 11 
+0

这会给JSONException,因为JSON数组第一个索引对象中缺少“NAME”和其他键。 –

+0

@amitsingh尝试一下,然后再次评论,这就是为什么索引从1开始看循环 – Raghunandan

+0

使用try-catch块,你可以阻止你的应用程序崩溃,但是你不能像这样解析你的jason。 –