0

我正在开发一个 Android 项目,我的 json 字符串有点奇怪,所有教程都显示我需要解析 JSONArray,但我的 JSON 没有数组名称。这是一个示例 json url。(我的理解是在 [

 [
 ///Something should be here
 {
    "id": 15483,
    "title": "Bilbo Baggins is Cool",
    "permalink": "http://example.com/2012/12/03/",
     "content": "Hello World",
    "date": "2012-12-03 00:04:08",
    "author": "Bilbo Baggins",
    "thumbnail": "http://example.com/wp-        content/uploads/2012/12/DSC02971.jpg",
    "categories": [
        "News"
    ],
    "tags": [
        "LOTR",
        "One Ring",
        "Patch",
        "Police Department"
    ]
}
]

像这个例子http://www.androidhive.info/2012/01/android-json-parsing-tutorial/ 他们在开头有一个名为“contacts”的标签,让他可以使用 JSONArray 遍历所有内容并获取标签...我迷路了。如何解析这些数据?教程代码不起作用,因为我无法提取数组(至少我认为)。

4

2 回答 2

1

可以看这篇帖子,好像有类似的 JSONArray.. 可以简单的使用:

JSONArray yourArray = new JSONArray(jsonString);
// do the rest of the parsing by looping through the JSONArray
于 2013-01-27T21:29:43.223 回答
1
 I am lost

首先,我想告诉您,在 androidhive 的示例中,jsonstring 的root元素是 ,而您作为问题发布的 jsonstringjsonobject的元素是. 其次,不必总是在数组的开头有一个名称来使用它并从中提取数据。但是,在复杂的情况下肯定需要它,这也是一种很好的做法rootjsonarray

How can I parse this data?

根元素不同,所以需要改变消费数据的方式,

以 androidhive 为例,

    // Creating JSON Parser instance
JSONParser jParser = new JSONParser();

// getting JSON string from URL
JSONObject json = jParser.getJSONFromUrl(url); //look at the left side of assignment operator.here result is being consumed in JSONObject

try {
    // Getting Array of Contacts
    contacts = json.getJSONArray(TAG_CONTACTS);

    // looping through All Contacts
    for(int i = 0; i < contacts.length(); i++){
        JSONObject c = contacts.getJSONObject(i);

        // Storing each json item in variable
        String id = c.getString(TAG_ID);
        String name = c.getString(TAG_NAME);
        String email = c.getString(TAG_EMAIL);
        String address = c.getString(TAG_ADDRESS);
        String gender = c.getString(TAG_GENDER);

        // Phone number is agin JSON Object
        JSONObject phone = c.getJSONObject(TAG_PHONE);
        String mobile = phone.getString(TAG_PHONE_MOBILE);
        String home = phone.getString(TAG_PHONE_HOME);
        String office = phone.getString(TAG_PHONE_OFFICE);

    }
} catch (JSONException e) {
    e.printStackTrace();
}

您作为问题发布的 jsonstring 可以在 JSONArray 中使用,

    // Creating JSON Parser instance
JSONParser jParser = new JSONParser();

// getting JSON string from URL
JSONArray json = jParser.getJSONFromUrl(url); //look at the left side of assignment operator.here result is being consumed in JSONArray

try {
    // looping through All data
    for(int i = 0; i < json.length(); i++){
        JSONObject c = json.getJSONObject(i);

        // Storing each item in variable
        String id = c.getString("id");
        String title= c.getString("title");
        String permalink= c.getString("permalink");
        String content= c.getString("content");

    }
} catch (JSONException e) {
    e.printStackTrace();
}
于 2013-01-27T21:47:59.243 回答