2016-10-13 3 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 URL:

{ 
    "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("") метод.

Edited

Ваш идеальный 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 "имя": "Чо Thue хе Toyota5", \t "цена": «3233333 » \t "album_id": "3", \t "альбом": "Huyndai" } недействителен: { "идентификатор": "551" "имя": "Rent Disk" "цена": "3233333" "album_id": "3" "альбом": "Michael" } – luongkhanh

+0

@luongkhanh nope, S до недействительного –

Смежные вопросы