将数组与json分开并存储到db

时间:2015-02-27 04:00:46

标签: android arrays json android-json

我有一个来自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数组中有两个根据输入可能不同的对象。那么如何分离数组中的每个字段。

2 个答案:

答案 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
}

在第一次迭代时,您将获得第一个对象,然后您可以获取其字段并写入数据库,在下一次迭代中您将获得第二个对象。

这种方法只是一种示范,它有效,但效果不佳