有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JSON未从PHP在JAVA中解析

我的JSON不是用Java解析的。它返回空值。结果字符串正在返回正确的数据

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

共 (1) 个答案

  1. # 1 楼答案

    你可以试试这个:

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

    更多Details

    更新


    代码最终针对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");