2017-07-19 93 views
-5

我正在開發一個應用程序使用JSON API,並希望實現以下格式API到我的應用程序。我如何在使用android studio 2.3的項目中實現這個功能?我如何解析json對象和json數組在android中?

{ 
    "getdetailsasanas": [ 
     { 
      "asanaid": 1, 
      "asananame": "Half easy gas release pose", 
      "duration": 1, 
      "imageurl": "http://www.yogapoint.com/iOS/images/half-easy-gas-release-pose.jpg", 
      "imageversion": 2, 
      "audiourl": "http://www.yogapoint.com/iOS/audio/half-easy-gas-release-pose.mp3", 
      "audioversion": 1, 
      "videourl": "NULL", 
      "videoversion": 0, 
      "StepsForAsana": [ 
       { 
        "stepnumber": 1, 
        "stepdesc": "Step 1", 
        "stepimg": "http://www.yogapoint.com/iOS/images/asana-step/half-easy-gas-release-pose-step1.jpg", 
        "stepimgeversion": 0, 
        "imgethumbversion": 1, 
        "imgethumburl": "http://www.yogapoint.com/iOS/images/asana-step/half-easy-gas-release-pose-step1-tb.jpg" 
       }, 
       { 
        "stepnumber": 2, 
        "stepdesc": "Step 2", 
        "stepimg": "http://www.yogapoint.com/iOS/images/asana-step/half-easy-gas-release-pose-step2.jpg", 
        "stepimgeversion": 0, 
        "imgethumbversion": 1, 
        "imgethumburl": "http://www.yogapoint.com/iOS/images/asana-step/half-easy-gas-release-pose-step2-tb.jpg" 
       } 
      ] 
     } 
    ] 
} 
+0

展示你的工作。 –

+0

您是否嘗試使用Google搜索?如果你是世界上第一個在Android平臺上解析JSON的人,會令我感到驚訝 – 0xDEADC0DE

+0

看到這個https://stackoverflow.com/questions/9605913/how-to-parse-json-in-android –

回答

0

您可以使用Android SDK中提供的JSONObject其默認:

String json = "some JSON"; 
JSONObject jsonObject = new JSONObject(json); 

比你可以使用方法如

getBoolean(String key) 
getDouble(String key) 

或者你也可以使用谷歌GSON庫這在我看來更好,但你需要把它作爲Gradle中的依賴。

There is github for the Gson.

There is Gson API

0

使用GSON庫。解析響應的最佳方法。您可以使用GsonFormat插件來生成響應模型。

0

看看gson。這是json的一個簡單的序列化程序。

0

我很高興回答你的問題。 你可以這樣做。

try { 
     JSONObject jsonObject = new JSONObject(result); 
     JSONArray jsonArray = jsonObject.getJSONArray("getdetailsasanas"); 
     for (int i = 0; i < jsonArray.length(); i++) { 
      String asanaid = jsonArray.getJSONObject(i).getString("asanaid"); 
      String asananame = jsonArray.getJSONObject(i).getString("asananame"); 
      String duration = jsonArray.getJSONObject(i).getString("duration"); 
      String imageurl = jsonArray.getJSONObject(i).getString("imageurl"); 
      String imageversion = jsonArray.getJSONObject(i).getString("imageversion"); 
      String videourl = jsonArray.getJSONObject(i).getString("videourl"); 
      String videoversion = jsonArray.getJSONObject(i).getString("videoversion"); 
      JSONArray StepsForAsanaArray = jsonArray.getJSONObject(i).getJSONArray("StepsForAsana"); 
      for (int j = 0; j < StepsForAsanaArray.length(); j++) { 
       String stepnumber = jsonArray.getJSONObject(j).getString("stepnumber"); 
       String stepdesc = jsonArray.getJSONObject(j).getString("stepdesc"); 
       String stepimg = jsonArray.getJSONObject(j).getString("stepimg"); 
       String stepimgeversion = jsonArray.getJSONObject(j).getString("stepimgeversion"); 
       String imgethumbversion = jsonArray.getJSONObject(j).getString("imgethumbversion"); 
       String imgethumburl = jsonArray.getJSONObject(j).getString("imgethumburl"); 
      } 
     } 

    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
+0

你必須減少你的執行 –

+0

sure.I得到它。但我不知道他需要什麼。 – KeLiuyue

+0

但我認爲'Gson'或'Fastjson'會更好 – KeLiuyue

0

使用像這樣的代碼:

JSONArray getdetailsasanas = new JSONArray(stringData); 
for (int p = 0; p < getdetailsasanas.length(); p++) { 
    try { 
     JSONObject data = getdetailsasanas.getJSONObject(p); 
     JSONObject asanaid = data.getJSONObject("asanaid"); 
     JSONObject stepnumber = data.getJSONObject("stepnumber"); 
     JSONObject stepnumber = data.getJSONObject("stepnumber"); 


     //get data from objetcs 
     String asananame = asanaid.getString("asananame"); 
     int duration = asanaid.getInt("duration"); 
     String imageurl = asanaid.getString("imageurl"); 


    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 
+0

@Rohi我的帖子已更新 –