将JSON映射到Java中的数组/对象Android - Android
我有一个web系统,它返回一个json字符串和我在Android应用中需要的数据。字符串如下:将JSON映射到Java中的数组/对象Android - Android
[
{"id":1,
"title":"Remove ViRuSeS",
"tagline":"Remove ViRuSeS",
"body":"Body",
"image":"index.jpg",
"steps":[
{"id":2,
"title":"Step 1",
"body":"Download Things!",
"position":1}
]
}
]
它应该返回一个对象数组,其中一个对象的项目也是一个项目数组。
我对gson很熟悉,并且在过去得到了这个工作,但我总是不得不简化我的数据到一个对象,这使得我最终必须进行多次调用以获取数据。
有没有好的方法来做到这一点,而无需将所有可能的值映射回类?
我最后的尝试是,只是试图让事情简单了这一点,并正在对这些线路的第二个得到一个NullPointerException
:
userDet = new JSONObject(string);
JSONArray userDetJson = userDet.getJSONArray("Steps");
将其更改为“台阶”,而不是“步骤“,这将解决这个问题:
userDet = new JSONObject(string);
JSONArray userDetJson = userDet.getJSONArray("steps");
全解析方法:
JSONArray mainArray = new JSONArray(json);
for (int i = 0 ; i < mainArray.length() ; i ++)
{
JSONObject currentItem = array.getJSONObject(i);
String title = currentItem.getString("title");
String body = currentItem.getString("body ");
....
JSONArray currentItemStepsArray = currentItem.getJSONArray("steps");
for (int j = 0 ; j < currentItemStepsArray.length() ; j ++)
{
....
}
}
谢谢你的完全解析法。我认为这对我现在终于有意义了! – 2013-03-16 20:17:22
欢迎你,有一个很好的编码:) – 2013-03-16 20:20:20
这里,试试这个:不是“步骤”
JSONArray topLevelArr = new JSONArray(json);
JSONArray stepArr = topLevelArr.getJSONObject(0).getJSONArray("steps");
尝试参数“台阶” – 2013-03-16 19:43:14