解析android中的JSON对象

时间:2012-01-18 07:16:57

标签: android json parsing

我有JSON对象如下:

[
    {
        "Project": {
            "id": "1",
            "project_name": "name"
        },
        "AllocationDetail": [
            {
                "id": "1",
                "project_id": "1",
                "team_name": "ror",
                "week_percentage_work": "50",
                "in_today": "1",
                "actual_hours": "30",
                "remaining_hours": "100",
                "time_difference": null,
                "created": "2012-01-13 15:48:33",
                "modified": "2012-01-13 15:48:33"
            },
            {
                "id": "2",
                "project_id": "1",
                "team_name": "php",
                "week_percentage_work": "40",
                "in_today": "2",
                "actual_hours": "50",
                "remaining_hours": "100",
                "time_difference": null,
                "created": "2012-01-13 15:49:40",
                "modified": "2012-01-13 15:49:40"
            }
        ]
    }
]

我想在android中解析数据并将其存储到DB中,但我在Jsonobject中感到困惑 谢谢

5 个答案:

答案 0 :(得分:3)

我见过的最好JSON Tutorial,我从本教程中学习了json解析,希望能有所帮助

答案 1 :(得分:1)

解析JSON有两种方法

如果您的JSON内容太复杂且足够长,您可以更喜欢使用GSON,它比JSON手动解析每个值更容易维护。

答案 2 :(得分:1)

使用jsonlint.com更好地阅读你的json。您在此处复制的json似乎无效。

答案 3 :(得分:1)

以下是用于解析json字符串的代码段代码。请仔细阅读:

    String response = <Your JSON String>;
            String Project = null;
            String AllocationDetail = null;
            try {
                JSONArray menuObject = new JSONArray(response);
                 for (int i = 0; i< menuObject.length(); i++) {
                        Project     =   menuObject.getJSONObject(i).getString("Project").toString();
                        System.out.println("Project="+Project);
                        AllocationDetail    =   menuObject.getJSONObject(i).getString("AllocationDetail").toString();
                        System.out.println("AllocationDetail="+AllocationDetail);
                 }
                 JSONObject jsonObject  =   new JSONObject(Project);
                 String id = jsonObject.getString("id");
                 System.out.println("id="+id);
                 String project_name = jsonObject.getString("project_name");
                 System.out.println("project_name="+project_name);

                 JSONArray jArray = new JSONArray(AllocationDetail);
                 for (int i = 0; i< jArray.length(); i++) {
                     String team_name       =   jArray.getJSONObject(i).getString("team_name").toString();
                     System.out.println("team_name="+team_name);
                     String week_percentage_work        =   jArray.getJSONObject(i).getString("week_percentage_work").toString();
                     System.out.println("week_percentage_work="+week_percentage_work);
                 }
            } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

答案 4 :(得分:1)

String response = <Your JSON String>; // add your Json String here
response = response.replace("[","").replace("]",""); // Just remove all square braces
JSONObject json = new JSONObject(response); //Convert the Json into Json Object
JSONObject jProject = json.getJSONObject("Project"); // get your project object
String  project_id = jProject.getString("id"); // Get the value of Id
String  project_name = jProject.getString("project_name"); // get the value of Project_name

上面的代码可以多次使用,因为你想要解析Json。 我知道它为时已晚,但它可能会帮助许多试图找到相同答案的人。 我试图找到相同的解决方案,但由于代码行太多而使用Accepted的答案太难了,但是我得到了相同的结果而几乎没有代码行。