无法解码Json数组值?

时间:2014-08-11 07:29:13

标签: java android

如何在android中获取这些JSON值?

{
    "one": [
        {
            "ID": "100",
            "Name": "Hundres"
        }
    ],
    "two": [
        {
            "ID": "200",
            "Name": "two hundred"
        }
    ],
    "success": 1
}

我尝试了以下但是它显示长度为0.我无法获得数组值。

JSONObject json = jParser.getJSONFromUrl(url_new);
try {
    getcast = json.getJSONArray("one");
    int length = getcast.length();
} catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

2 个答案:

答案 0 :(得分:0)

您可以在代码中使用以下行

String str = jParser.getJSONFromUrl(url).tostring();

以下是为我工作的Code Snippet

String str = "{"
                + "\"one\": ["
                +        "{"
                +            "\"ID\": \"100\","
                +            "\"Name\": \"Hundres\""
                +        "}"
                +    "],"
                +    "\"two\": ["
                +       " {"
                +           " \"ID\": \"200\","
                +           " \"Name\": \"two hundred\""
                +       " }"
                +    "],"
                +    "\"success\": 1"
                + "}"; 

        try {
        JSONObject obj = new JSONObject(str);
        JSONArray arr = obj.getJSONArray("one");
        int n = arr.length();

        String id;
        String name;

        for (int i = 0; i < n; ++i) {
          JSONObject person = arr.getJSONObject(i);
          id =  person.getString("ID");
          name = person.getString("Name");
        }

        arr = obj.getJSONArray("two");
        n = arr.length();
        for (int i = 0; i < n; ++i) {
          JSONObject person = arr.getJSONObject(i);
          id =  person.getString("ID");
          name = person.getString("Name");
        }

        int success = obj.getInt("success");
        }
        catch(Exception ex) {
            System.out.println(ex);
        }

答案 1 :(得分:-2)

我猜失败在于第一行。 url_new有什么价值? 如果您可以以String的形式从上面获取Json,我建议从构造函数JSONObject(String source)构建JSONObject json,如下所示:

JSONObject json = new JSONObject(json_string);

这就是我用来从API调用中提取JSON的方法。

参考:http://www.json.org/javadoc/org/json/JSONObject.html 你可以在这里看到所有构造函数。