мой 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");
Вы можете попробовать это:
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");
Других решений пока нет …