簡體   English   中英

無法從PHP在Java中解析JSON

[英]JSON not parsing in JAVA From PHP

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM