2017-12-27 6 views
-3

私は私のjsonの価値を得ようとしています。まずは私のjsonです。jsonを解析してその値を確認するにはどうすればいいですか?

{ 
    "status": "true", 
    "userData": { 
     "user_id": "USER001", 
     "username": "boby", 
     "password": "c83e4046a7c5d3c4bf4c292e1e6ec681", 
     "fullname": "Boby Kurniawan", 
     "phone": "089688xxxxxxx", 
     "profilpic": null, 
     "status": null, 
     "flag": 1, 
     "tipe": "TP001", 
     "Deskripsi": "Ini tentang gua", 
     "Email": "[email protected]" 
    } 
} 

[OK]を、2 JSON、JSONは、上記のように見えますが、それが失敗したとき、それはだから私はそれを解析する必要が

{ "status" : "false" } 

戻りますログイン成功場合があるでしょう最初ために右?私は

JSONObject jsonObj = new JSONObject(result); 
JSONArray status = jsonObj.getJSONArray("status"); 

次の行を追加しますが、私はそれを修正することができますどのように

unhandled exception : org.json.JSONException 

このエラーが出ますか?

+0

を試し、キャッチブロックを使用することによって囲ま

JSONオブジェクトを覚えて私のANSを確認してください。 –

+0

私のansを例外処理でチェックしてください。 – Dilip

+3

[AndroidのJSONを解析する方法](https://stackoverflow.com/questions/9605913/how-to-parse-json-in-android)の可能な複製 – ADM

答えて

2

unhandled exception : org.json.JSONException

ANS:statusがあなたの代わりにjsonObj.getJSONArray("status");

jsonObj.getString("status")を使用する必要があります

JSON配列の文字列ではありませんので、あなたがそのエラーを取得しています

この

try 
{ 


    JSONObject jsonObj = new JSONObject(result); 
    String status = jsonObj.getString("status"); 

    Log.i("status", "->" + status); 

    JSONObject jsonObject = jsonObj.getJSONObject("userData"); 

    Log.i("user_id", "->" + jsonObject.getString("user_id")); 
    Log.i("username", "->" + jsonObject.getString("username")); 
    Log.i("password", "->" + jsonObject.getString("password")); 
    Log.i("fullname", "->" + jsonObject.getString("fullname")); 
    Log.i("phone", "->" + jsonObject.getString("phone")); 
    Log.i("profilpic", "->" + jsonObject.getString("profilpic")); 
    Log.i("status", "->" + jsonObject.getString("status")); 
    Log.i("flag", "->" + jsonObject.getString("flag")); 
    Log.i("tipe", "->" + jsonObject.getString("tipe")); 
    Log.i("Deskripsi", "->" + jsonObject.getString("Deskripsi")); 
    Log.i("Email", "->" + jsonObject.getString("Email")); 

} 
catch (JSONException e) 
{ 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

OUTPUT

enter image description hereを試してみてください

+0

私は投票の理由を知っているかもしれません –

+1

私を助けて。 – YVS1102

+0

@ YVS1102お手伝いします。 –

1

未処理の例外:org.json.JSONException

=>あなたはJSONの配列を取得しようとしているので、ここではJSON配列ではなくフィールドのみです。

試してみてください。

String status = jsonObj.getString("status"); 
1
try { 
      JSONObject jsonObj = new JSONObject(result); 
      String status = jsonObj.getString("status"); 
      JSONObject userData = jsonObj.getJSONObject("userData"); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
+0

これは質問に対する答えを提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 - [レビューの投稿](レビュー/低品質の投稿/ 18360829) – Akshay

-1

あなたはのtry/catchで囲む必要があります。ここでは

try { 
      JSONObject jsonObj = new JSONObject(result); 
      String status = jsonObj.optString("status"); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
+0

間違っていることを確認してください**状態**は文字列ではありませんjson配列 –

+1

あなたは正しいです...コピー後に変更するのを忘れました貼り付け:) 固定... また、最高のoptString()とgetString()を使用しないでください – fuzzKitty

+0

今すぐ正しいコーディングを楽しんでください –

0

"ステータスが" アレイ、その文字列ではありません。 Json Arrayは[]で囲む必要があります。 は、「ステータス」の値を取得するには、

String status = jsonObj.getString("status"); 

はその後、ステータス値をチェックする必要があり、使用する必要があります。 は、データの取得中、[]

で囲ま{}

JSON配列はまた、

try{ 
    String status = jsonObj.getString("status"); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 
関連する問題