2012-08-28 50 views
1

可能重複:
How to Parse a JSON Object In Android如何解析Android SDK中的JSON?

我有JSON對象,像下面的..我該如何解析對象?

{ 
    "0": 
    { 
     "productname":"Famous Amos Bite Size Chocolate Chip Cookies - 4 Pack", 
     "imageurl":"http://ecx.images-amazon.com/images/I/513j-WyH1GL._SL160_.jpg", 
     "producturl":"http://www.searchupc.com/rd.aspx?u=d%2bKvXQ%2fFIfa95xJ38QYLycSjbm5dt4dy3l4IYTYPM3agt4tefTNsMwzWkPWd9gCY%2fEnCdaGVMLsQD%2fO5ZUWbfJyqOuwIWqkLvouDyw5u7VWmda5dK2%2fRTmcAp3%2f1TImmZmtdaNauL74Lj8BkV0r15VeazeDf4Im4Nx%2f5TOuqBUnUXzeNkYrWvlLitV8FDFIkM77UIjZzYZqoQANt0PBNeqh94bzLqFRXpNYPyqc0fLDTHnA9TM2jsbaKVN23UA%2fH", 
     "price":"5.95", 
     "currency":"usd", 
     "saleprice":"", 
     "storename":"amazon.com" 
    } 
} 
+0

具有u嘗試,直到又是什麼? –

+4

https://www.google.com/search?q=android+parse+json – jolivier

+0

請參閱[this](http://www.androidhive.info/2012/01/android-json-parsing-tutorial/)以及,看看那裏的圖片鏈接。他們如何使用JSONObject獲取json值。 – Praveenkumar

回答

0

試試這個代碼

// getting JSON string from URL 
    JSONObject json = jParser.getJSONFromUrl(url); 

    System.out.println("json is "+json); 
    System.out.println("Length"+json.length()); 

    for (int i = 0; i < json.length(); i++) { 
     try { 
      String atObj = Integer.toString(i); 
      System.out.println(atObj); 
      JSONObject jObj = json.getJSONObject(atObj); 
      System.out.println(jObj.getString("productname")); 
      System.out.println(jObj.getString("imageurl")); 
      System.out.println(jObj.getString("producturl")); 
     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
1

Android提供org.json package,可用於將您的字符串解析爲JSONObject。

您可以使用此行代碼實現這一點:

JSONObject json = new JSONObject(myJsonString); 
3

一個下面的例子演示瞭如何解析JSON。你會得到一個非常明確的解釋json解析here

JSONObject myjson = new JSONObject("put you json string here"); 
JSONArray the_json_array = myjson.getJSONArray("0"); 
int size = the_json_array.length(); 
for (int i = 0; i < size; i++) { 
JSONObject another_json_object = the_json_array.getJSONObject(i);   
    System.out.println((String) another_json_object.get("productname"));   
    System.out.println((String) another_json_object.get("imageurl"));  
    System.out.println((String) another_json_object.get("producturl")); 
} 
2

您必須爲此使用JSONObject。下面的代碼使用 -

JSONParser的.java

public JSONObject getJSONFromUrl(String url) // url is your json url 
{ 

    // Making HTTP request 
    try { 
     // defaultHttpClient 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost(url); 

     HttpResponse httpResponse = httpClient.execute(httpPost); 
     HttpEntity httpEntity = httpResponse.getEntity(); 
     is = httpEntity.getContent();   

    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    try { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(
       is, "iso-8859-1"), 8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "n"); 
     } 
     is.close(); 
     json = sb.toString(); 
    } catch (Exception e) { 
     Log.e("Buffer Error", "Error converting result " + e.toString()); 
    } 

    // try parse the string to a JSON object 
    try { 
     jObj = new JSONObject(json); 
    } catch (JSONException e) { 
     Log.e("JSON Parser", "Error parsing data " + e.toString()); 
    } 

    // return JSON String 
    return jObj; 

} 

它會返回JsonObject並利用該jsonbobject我們可以得到的結果作爲數組。

// Creating JSON Parser instance 
JSONParser jParser = new JSONParser(); 

// getting JSON string from URL 
JSONObject json = jParser.getJSONFromUrl(url); 

try { 
    // Getting Array of Contacts 
    contacts = json.getJSONArray(TAG_CONTACTS); 

    for(int i = 0; i < contacts.length(); i++) { 

     String product_name = contacts.getString("productname"); 
     String image_url = contacts.getString("imageurl"); 
     ..... 
     ..... 
     String store_name = contacts.getString("storename"); 
    } 
}catch(JSONException e) 
{ 
    e.printStackTrace(); 
} 

更多隻是指Android json tutorial