无法从android中的JSONObject获取JSON数据?

时间:2015-05-26 06:35:53

标签: android json

目前,我在尝试从jsonArray获取字符串数据时遇到了一些小麻烦,但是,我无法获得该值。我在json对象中得到了数据示例:

{
    "lot":[
        {
            "id":"271",
            "lot_date":"2015-05-25"
        }
    ],
    "numb3":[
        {
            "id":"675",
            "lot_date":"2015-05-25"
        }
    ],
    "num4":[
        {
            "id":"676",
            "lot_date":"2015-05-25"
        }
    ],
    "result":"OK"
}

上面的数据存储在JsonObject jsonobj中。我想要做的是检查JSON数组JSONArray lot6 = jsonobj.optJSONArray("lot6");是否包含值,如果它不是null,则获取字符串数据。但是,即使数据包含在lot6数组中,结果也是null。

JSONArray lot6 = jsonobject.optJSONArray("lot6");
Log.d("LOT6",lot6+"");

if (lot6 != null) {
    jsonarry2 = jsonobject.getJSONArray("lot6");
    //3.if not null get the string data from the 

    for (int i = 0; i < jsonarry2.length(); i++) {
        HashMap<String, String> map = new HashMap<String, String>();
        jsonobject = jsonarry2.getJSONObject(i);

        ListData worldpop = new ListData();
        worldpop.set_date(jsonobject.optString("lot_date"));
        worldpop.set__id(jsonobject.optString("id"));
        world.add(worldpop);


    }
    //5. test this part of the variable
    String lotdate = world.get(0).get_date();
    String lotid   = world.get(0).get__id();

1 个答案:

答案 0 :(得分:0)

嗨,请检查不是很多6。请在下面的甲酸酯下面离开。

String s="{\"lot\":[{\"id\":\"271\",\"lot_date\":\"2015-05-25\"}],\"numb3\":[{\"id\":\"675\",\"lot_date\":\"2015-05-25\"}],\"num4\":[{\"id\":\"676\",\"lot_date\":\"2015-05-25\"}],\"result\":\"OK\"} ";

     try{
            JSONParser parser = new JSONParser();
            JSONObject json = (JSONObject) parser.parse(s);
            String arr[]={"lot","numb3","num4"};
            for(int i=0;i<json.size()-1;i++){
            JSONArray ja=(JSONArray)json.get(arr[i]);
            for(int j=0;j<ja.size();j++){

                JSONObject jo1=(JSONObject) ja.get(j);

        System.out.println("lot_date: "+jo1.get("lot_date")+" Id "+jo1.get("id"));

            }

        //  System.out.println(ja);
            }

            System.out.println(json.get("result"));

            }catch (Exception e) {
                System.out.println(e);
            }