org.json.JSONException:价格没有价值

时间:2016-10-13 05:13:09

标签: java android json

我在android中得到结果json和parse。消息发生异常:org.json.JSONException:没有价格值

W/System.err: org.json.JSONException: No value for price
W/System.err:     at org.json.JSONObject.get(JSONObject.java:389)
W/System.err:     at org.json.JSONObject.getString(JSONObject.java:550)

我的java类

JSONParser jsonParser = new JSONParser();

// tracks JSONArray
JSONArray albums = null;

// Album id
String album_id = null;
String song_id = null;

String album_name, song_name, price;

// single song JSON url
// GET parameters album, song
private static final String URL_SONG = "my url";


// ALL JSON node names
private static final String TAG_NAME = "name";
private static final String TAG_PRICE = "price";
private static final String TAG_ALBUM = "name";     // album
...
try {
       JSONObject jObj = new JSONObject(json);
       if(jObj != null){
            song_name = jObj.getString(TAG_NAME);
            album_name = jObj.getString(TAG_ALBUM);
            price = jObj.getString(TAG_PRICE);
       }
 } 
 catch (JSONException e) {
        e.printStackTrace();
 }

我的json网址:

{
  "id": "551"
  "name": "Rent Disk"
  "price": "3233333"
  "album_id": "3"
  "album": "Michael"
}

如何修复此异常?非常感谢!!

2 个答案:

答案 0 :(得分:5)

你可以在设置值之前进行这样的检查

JSONObject jObj = new JSONObject(json);
if(jObj != null) {
    if(jObj.has(TAG_NAME)) {
        song_name = jObj.getString(TAG_NAME);
    }
    if(jObj.has(TAG_ALBUM)){
        album_name = jObj.getString(TAG_ALBUM);
    }
    if(jObj.has(TAG_PRICE)){
        price = jObj.getString(TAG_PRICE);
    }
}

答案 1 :(得分:4)

<强> JSONException

  

抛出以指示JSON API存在问题

<强> FYI

 {
  "id": "551"
  "name": "Rent Disk"
  "price": "3233333"
  "album_id": "3"
  "album": "Michael"
}

发布您的Json Here

如果以上是您的json,则无效

根据您的要求,您应该使用 JSONObject .has("") and .isNull("")方法。

<强>被修改

你完美的Json是

{ "id": 551, "name": "Cho thue xe Toyota5", "price": "3233333", "album_id": "3", "album": "Huyndai" }

试试这个

 JSONObject myJson = new JSONObject(json);
 String getName = myJson.optString("name");
 int getID= myJson.optInt("id");