2012-09-18 19 views
0

我堅持使用org.json解析Java中的JSON。我的JSON看起來像這樣如何我可以解析Java中的JSON

[{"id" : "1", 
    "type" : "City", 
    "description" : [ "short_description" : "some data", 
        "long_description" : "some data", 
        "postal_code" : "49045", 
        "population" : "900000", 
        ], 
    } 
], 

我如何解析標籤描述的元素,例如long_description?

+0

看看這篇文章:HTTP:// WWW .vogella.com/articles/AndroidJSON/article.html – 2012-09-18 09:21:13

+0

請參閱此前言s帖子http://stackoverflow.com/questions/10699348/how-to-parse-json-having-multiple-values/10699469#10699469 – Aerrow

回答

1

使用json-lib的,你可以簡單地將其作爲庫添加到您的現有項目,這樣做:

數據(JSON):

{ '富': '棒',「冷靜':2.0,'altitude':39000,'pilot':{'firstName':'Buzz','lastName':'Aldrin'},'mission':'apollo 11'}

code to parse數據:

import java.io.InputStream; 

import net.sf.json.JSONObject; 
import net.sf.json.JSONSerializer; 

import org.apache.commons.io.IOUtils; 

public class JsonParsing { 

    public static void main(String[] args) throws Exception { 
     InputStream is = 
       JsonParsing.class.getResourceAsStream("sample-json.txt"); 
     String jsonTxt = IOUtils.toString(is); 

     JSONObject json = (JSONObject) JSONSerializer.toJSON(jsonTxt);   
     double coolness = json.getDouble("coolness"); 
     int altitude = json.getInt("altitude"); 
     JSONObject pilot = json.getJSONObject("pilot"); 
     String firstName = pilot.getString("firstName"); 
     String lastName = pilot.getString("lastName"); 

     System.out.println("Coolness: " + coolness); 
     System.out.println("Altitude: " + altitude); 
     System.out.println("Pilot: " + lastName); 
    } 
} 

參考文獻:

0
JSONArray values = new JSONArray(yourstring); 
for(int i = 0 ; i < values.length(); i++){ 
    JSONObject object= values.get(i); 
    JSONArray desc = object.getJSONArray("description"); 

} 
0

你可以不用庫 -

try { 
    JSONTokener tokener = new JSONTokener(yourString); 
    JSONObject jsonObj = (JSONObject) tokener.nextValue(); 
    String output = jsonObj.getString("streamUrl"); 
} catch (JSONException e) { 
    Log.v("Logtag", "Problem in decoding json"); 
    e.printStackTrace(); 
}