2017-07-19 9 views
-5

私はjson apiを使用してアプリケーションを開発しており、次の形式のAPIをアプリケーションに実装したいと考えています。どのように私はアンドロイドスタジオ2.3を使用して私のプロジェクトでこれを実装するのですか?あなたはどのように私はアンドロイドでjsonオブジェクトとjson配列を解析するのですか?

getBoolean(String key) 
getDouble(String key) 

など

それとも、Googleのgsonライブラリを使用することができるようなメソッドを使用することができるよりも

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

:あなたは、Android SDKに付属のデフォルトをJSONObject使用することができます

{ 
    "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

あなたはそれをグーグルで試しましたか?あなたがAndroidプラットフォーム上でJSONを解析しようとする世界で最初の人であれば私には驚きでしょう – 0xDEADC0DE

+0

こちらをご覧くださいhttps://stackoverflow.com/questions/9605913/how-to-parse-json-in-android –

答えて

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

確かです。私はそれを持っています。しかし、私は彼が必要なものを知りません。 – 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 my post updated –

関連する問題