0

我的网站生成了以下 json。我对android编程完全陌生。如果可能,请告诉我如何解析以下 json 数据以显示在列表视图中。

JSON:

  {
   "Category":[
      {
         "id":"14",
         "parent_id":"2",
         "lft":"3",
         "rght":"18",
         "name":"Category Name",
         "icon":"",
         "created":"2012-04-21 23:43:37",
         "modified":"2012-04-21 23:43:37"
      },
      {
         "id":"15",
         "parent_id":"2",
         "lft":"19",
         "rght":"28",
         "name":"Category Name",
         "icon":"",
         "created":"2012-04-21 23:44:10",
         "modified":"2012-04-21 23:44:10"
      },
      {
         "id":"16",
         "parent_id":"2",
         "lft":"29",
         "rght":"34",
         "name":"Category Name",
         "icon":"",
         "created":"2012-04-21 23:44:35",
         "modified":"2012-04-21 23:45:37"
      },
      {
         "id":"17",
         "parent_id":"2",
         "lft":"35",
         "rght":"60",
         "name":"Category Name",
         "icon":"",
         "created":"2012-04-21 23:44:52",
         "modified":"2012-04-21 23:45:53"
      },
      {
         "id":"18",
         "parent_id":"2",
         "lft":"61",
         "rght":"62",
         "name":"Category Name",
         "icon":"",
         "created":"2012-04-21 23:46:05",
         "modified":"2012-04-21 23:46:05"
      },
      {
         "id":"19",
         "parent_id":"2",
         "lft":"63",
         "rght":"70",
         "name":"Category Name",
         "icon":"",
         "created":"2012-04-21 23:46:19",
         "modified":"2012-04-21 23:46:19"
      }
   ],
   "success":1
}
4

6 回答 6

1

获取json数组,并一一获取其中的各个嵌套对象和数组。然后使用 get(String key) 方法获取对象内单个字符串的值。

在您的情况下,代码将是:

JSONObject json_data = new JSONObject(result);
JSONArray json_array = new JSONArray(json_data.getString("Category"));
JSONObject temp;
for(i=0;i<json_array.length();i++)
{
temp = json_array.getJSONObject(i);

String id = temp.get("id").toString();
String parent_id = temp.get("parent_id").toString();
.
.
.
}
String success_value=json_data.get("success");
于 2012-10-05T08:06:28.933 回答
1

试试谷歌的 Gson。这是示例。如何将其解析为数组列表

List<Category> categories = gson.fromJson(json, new TypeToken<Collection<Category>>() {}.getType());
于 2015-07-31T12:29:48.147 回答
0
JSONObject jasonobject = new JSONObject(yourString);
JSONArray jarray = Jasonobject.getJSONArray("Category");

for (int i = 0; i < Jarray.length(); i++) { ...}

检查http://p-xr.com/android-tutorial-how-to-parse-read-json-data-into-a-android-listview/

于 2012-10-05T07:53:25.127 回答
0

我可能会使用像杰克逊这样的第 3 方库:http: //jackson.codehaus.org/

然后你可以做这样的事情:

ObjectMapper mapper = new ObjectMapper();
JsonParser jp = mapper.getJsonFactory().createJsonParser(jsonBody);
JsonNode rootNode = mapper.readTree(jp);

jsonBody 是你的字符串。然后,您可以使用 JsonNode 的 get() 方法以您认为对您的目的最有用的方式提取数据。Internet 上有很多示例可以帮助您入门。

于 2012-10-05T08:00:08.750 回答
0

试试这样

JSONObject object = new JSONObject(result);
JSONArray Jarray = object.getJSONArray("Category");

for (int i = 0; i < Jarray.length(); i++) {
    JSONObject Jasonobject = Jarray.getJSONObject(i);
于 2012-10-05T08:00:20.720 回答
0

看看 Google 在 Java 中的 JSON 实现。

GSON 真是太棒了。http://code.google.com/p/google-gson/

于 2012-10-05T08:00:49.693 回答