我有一个来自Web服务器的json,如下所示:
"data": {
"classes": [
{
"subject_name": "Chemistry",
"class_id": "48",
"class_division": "A",
"map_id": "44",
"teacher_name": "Principal",
"subject_id": "7",
"teacher_id": "1",
"class_name": "1",
"subject_code": "CHE"
},
{
"subject_name": "Biology",
"class_id": "48",
"class_division": "A",
"map_id": "33",
"teacher_name": "Principal",
"subject_id": "8",
"teacher_id": "1",
"class_name": "1",
"subject_code": "BIO"
}
],
"token": "4A48B90CF31D582FAB73D283FA72380E"
我想将类信息存储在数据库中。这里在classes数组中有两个根据输入可能不同的对象。那么如何分离数组中的每个字段。
答案 0 :(得分:0)
假设您将json保存在名为jsonResponse的String对象中,它将如下所示:
JSONObject json = new JOSNObject(jsonResponse);
JSONArray classes = json.getJSONArray("classes");
for (int i=0;i<classes.length();i++){
JSONObject classesObj = classes.getJSONObject(i);
/**
* Next you would process your classesObj as you require.
* Remember classesObject is a JSONObject
*/
}
答案 1 :(得分:0)
所以我猜你想要检索信息,即解析json数据对象。 使用第三方工具有不同的方法,例如Jackson和Gson是最好的方法,但更复杂。所以从JSONObject和JSONArray开始。
将json响应转换为JSONObject。
JSONObject jsonObject=new JSONObject(response);
获取类数组
JSONArray jsonArray= jsonObject.getJSONArray("class");
遍历jsonArray并获取每个对象:
for(int i=0; i<jsonArray.length(); i++){
JSONObject innerJson = jsonArray.getJSONObject(i);
String subject_name = innerJson.get("subject_name");
....
//write to database
}
在第一次迭代时,您将获得第一个对象,然后您可以获取其字段并写入数据库,在下一次迭代中您将获得第二个对象。
这种方法只是一种示范,它有效,但效果不佳