0

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

1 Answer 1

1

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");
Sign up to request clarification or add additional context in comments.

3 Comments

Hi, no it is not. still NULL
FYI using: quick-json Parser
FYI i have given you details link of parsing example.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.