2017-07-19 96 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我的帖子已更新 –