My 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");