JSON не анализируется в JAVA из переполнения стека

мой JSON не разбирается в Java. Он возвращает значения NULL. Строка результата возвращает правильные данные.

JSON это

[
{
"ad": 1,
"adid": "1",
"price": "15.00",
"adtitle": "title",
"user_id": "3"}
]

Код как показано ниже

protected void onPostExecute(String result){
JsonParserFactory factory=JsonParserFactory.getInstance();
JSONParser parser=factory.newJsonParser();
Map jsonData=parser.parseJson(result);

String id=(String)jsonData.get("adid");
String price=(String)jsonData.get("price");
String adtitle=(String)jsonData.get("adtitle");
String user_id=(String)jsonData.get("user_id");

Log.e(TAG, "adid:" + id);
Log.e(TAG, "price:" + price);
Log.e(TAG, "title:" + adtitle);
Log.e(TAG, "user id:" + user_id);

}

с помощью https://code.google.com/p/quick-json/

Попробуйте это и увидите ошибку для себя:

public static void main(String[] args) {
String result = "[   {   \"ad\": 1,     \"adid\": \"1\",  \"price\": \"15.00\",   \"adtitle\": \"title\",   \"user_id\": \"3\"  }]  ";

JsonParserFactory factory=JsonParserFactory.getInstance();
JSONParser parser=factory.newJsonParser();
Map jsonData=parser.parseJson(result);String id=(String)jsonData.get("adid");
String price=(String)jsonData.get("price");
String adtitle=(String)jsonData.get("adtitle");
String user_id=(String)jsonData.get("user_id");

System.out.println(id);
System.out.println(price);
System.out.println(adtitle);
System.out.println(user_id);

}

Делать это сработало:

JsonParserFactory factory=JsonParserFactory.getInstance();
JSONParser parser=factory.newJsonParser();
Map jsonData=parser.parseJson(result);

List list=(List) jsonData.get("root");
String id=(String) ((Map)list.get(0)).get("adid");

0

Решение

Вы можете попробовать это:

JsonParserFactory factory=JsonParserFactory.getInstance();
JSONParser parser=factory.newJsonParser();
Map jsonData=parser.parseJson(result);

List al=rootJson.get("root");
String id=((Map)al.get(0)).get("id");

Больше подробности

Обновления


Код, наконец, запускается для OP-ситуации:

JsonParserFactory factory=JsonParserFactory.getInstance();
JSONParser parser=factory.newJsonParser();
Map jsonData=parser.parseJson(result);

List list=(List) jsonData.get("root");
String id=(String) ((Map)list.get(0)).get("adid");
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]