2016-10-13 83 views
1

我得到了结果json和解析在android中。异常情况下出现一条消息:org.json.JSONException:价格没有价值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" 
} 

如何解决这个异常?非常感谢 !!

+0

您的JSON无效 –

+0

检查您在本网站JSON尝试: - HTTP://www.jsoneditoronline .org/ – musica

回答

4

你可以把这样的检查将值

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); 
    } 
} 
+0

谢谢,我会尽力回复 – luongkhanh

+0

okk请让我知道 –

+0

你有没有检查@luongkhanh先生? –

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"); 
+1

恩说爵士.... –

+1

家伙嗨,我有检查,看看我的JSON是缺少逗号: 有效: { \t “ID”:551, \t “名”: “卓图厄XE Toyota5”, \t “价格”:“3233333 ” \t “album_id”: “3”, \t “专辑”: “Huyndai” } 无效: { “ID”: “551” “名”: “租盘” “价格”: “3233333” “album_id”:“3” “album”:“Michael” } – luongkhanh

+0

@luongkhanh nope,S直到无效 –