2016-07-25 7 views
-2
私のトライアウトが、その私が

アンドロイドでjsonオブジェクトを2回設定する方法は?

マイJSONエラー与える

{ 
    "status":true, 
    "message":"Front About Found", 
    "data":{ 
     "FrontAbout":{ 
      "ABOUT_ID":"1", 
      "CONTENT":"and the arts. ", 
      "SCHOOL_NAME":"The New School", 
      "ADDRESS":" Western Corridor", 
      "LOGO":"14643339731.png" 
     } 
    } 
} 

私のサンプルコード:

{ 
    JSONArray jsonarray = jObj.getJSONArray("data"); 

    for (int z = 0; z < jsonarray.length(); z++) { 

     JSONObject jobj = jsonarray.getJSONObject(z); 

     JSONObject jobj_FrontAbout = jobj.getJSONObject("FrontAbout"); 

     school = jobj_FrontAbout.getString("SCHOOL_NAME"); 
     add = jobj_FrontAbout.getString("ADDRESS"); 
     phone = jobj_FrontAbout.getString("CONTACT_NO"); 
     email = jobj_FrontAbout.getString("EMAIL"); 
     cont = jobj_FrontAbout.getString("CONTENT"); 
     image = jobj_FrontAbout.getString("LOGO"); 

     setData(); 

     loadingView.dismiss(); 

    } 

    loadingView.dismiss(); 
    if (loadingView != null && loadingView.isShowing()) { 
     loadingView.dismiss(); 
    } 
} 

」JSONObjectがに変換することができないその私に与えてエラーをJSONArray「

私はテキストで簡単なセットにしたいです配列 溶液に私に

+1

あなたのJson文字列は無効です。最初に修正してください – Jas

+1

最終JSONArray jObject =新しいJSONArray( "data"); –

+2

'' data ":{" FrontAbout "'この "データ"はJSONオブジェクトであり、配列ではありません。 json配列は '' data ":[...]'のようなものです。 'JSONObject jsonarray = jObj.getJSONObject(" data ");' – kushpf

答えて

0

あなたは、このように解析することができます。

JSONObject jobj = jsonarray.getJSONObject(z); 
status=jobj.getBoolean("status"); 
message=jobj.getString("message"); 
         JSONObject dataObject = jobj.getJSONObject("data"); 
         JSONObject frontAboutObject = dataObject.getJSONObject("FrontAbout"); 

         school = frontAboutObject.getString("SCHOOL_NAME"); 
         add = frontAboutObject.getString("ADDRESS"); 
         phone = frontAboutObject.getString("CONTACT_NO"); 
         email = frontAboutObject.getString("EMAIL"); 
         cont = frontAboutObject.getString("CONTENT"); 
         image = frontAboutObject.getString("LOGO"); 
0

をお願いしていないビューにこれを試してみてください:

JSONObject jsonObj= jObj.getJSONObject("your json string"); 
JSONObject jsonInnerObj= jsonObj.getJSONObject("data"); 
+0

**ありがとう** Jas –

+0

その助けを参照してください見なかったと思う? – Jas

+0

はい、その作品は完璧です。 –

2

ここでは、「データ」をJSOnArrayとして解析しています。「データ」はJSONObjectですが、

JSONノードは、角かっこまたは中かっこで始まります。 [と{の違いは角括弧([)はJSONArrayノードの開始を表し、中括弧({)はJSONObjectを表します。

{ 
JSONObject dataJsonObject = jObj.getJSONObject("data"); 

for (int z = 0; z < dataJsonObject.length(); z++) { 

    JSONObject jobj = jsonarray.getJSONObject(z); 

    JSONObject jobj_FrontAbout = jobj.getJSONObject("FrontAbout"); 

    school = jobj_FrontAbout.getString("SCHOOL_NAME"); 
    add = jobj_FrontAbout.getString("ADDRESS"); 
    phone = jobj_FrontAbout.getString("CONTACT_NO"); 
    email = jobj_FrontAbout.getString("EMAIL"); 
    cont = jobj_FrontAbout.getString("CONTENT"); 
    image = jobj_FrontAbout.getString("LOGO"); 

    setData(); 

    loadingView.dismiss(); 

} 

loadingView.dismiss(); 
if (loadingView != null && loadingView.isShowing()) { 
    loadingView.dismiss(); 
} 

}

うまくいけば、あなたはエラーを取り除くでしょう。 CHEERS

関連する問題