简体   繁体   中英

JSON not parsing in JAVA From PHP

My JSON is not parsing in Java. It's returning NULL values. The result string is returning the correct data.

JSON is

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

Code as below

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

}

using https://code.google.com/p/quick-json/

Try this and see the error for yourselves:

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

}

Doing this worked:

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

You can try this:

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

More Details

Updates


Code finally run for OP situation:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM