JSON 使用

JSON 是什么 ?

Json(JavaScript Object Notation)是一种轻量级的数据交换格式


Json有哪两种结构?

JSON的两种结构:JSONObject和数组(JSONArray)

对象(Map):对象是键值对形式的Map,键和值之间用“ : ”隔开,两个Map之间用“, ”隔开,多个Map被包括在大括号{ }之间形成JSON对象。

{    
    key1:value1,    
    key2:value2,    
    key3:value3,    
    ......    
}  
//一个json对象,对象包括2个属性,name和age。
{    
    name:"jtzeng",    
    age:"21" //注意:与结束括号相邻的键值对后面没有逗号    
}  

数组(Array):数组结构被包括在中括号[ ]之间,其中包括0或多个以” , ”分隔的Map对象。

[    
    {    
        key1:value1,    
        key2:value2     
    },    
    {    
         key3:value3,    
         key4:value4       
    }    
]  

//简单json数组:一个json数组,数组里面包括2个对象,每个对象包括2个属性。
[    
    {    
        "name":"aaa",    
        "age":"21"    
    },    
    {    
        "name":"bbb",    
        "age":"21"    
    }    
] 
//稍微复杂:一个json对象,包括2个属性,data和result,而result对应的是一个json数组,该数组里面包含两个json对象。
{      
    "data":[      
        {      
            "planning_content":"do homework",      
            "planning_date":"2015-12-18",      
            "planning_id":1      
        },      
        {      
            "planning_content":"Go shopping.",      
            "planning_date":"2015-12-19",      
            "planning_id":2      
        }      
    ],      
    "result":"true"      
}  
// 相对复杂:一个json对象,里面存了一个数组,这个数组里面呢只有一个institute的对象,该对象下有name和grade属性,grade对应一个json数组,该数组下面有三个对象。
[    
    {    
        "institute":{    
            "name":"Software Institute",    
            "grade":[    
                {    
                    "name":"freshman",    
                    "class":[    
                        {    
                            "no.":1,    
                            "students":61    
                        },    
                        {    
                            "no.":2,    
                            "students":62    
                        },    
                        {    
                            "no.":3,    
                            "students":63    
                        }    
                    ]    
                },    
                {    
                    "name":"sophomore",    
                    "class":[    
                        {    
                            "no.":1,    
                            "students":51    
                        },    
                        {    
                            "no.":2,    
                            "students":52    
                        },    
                        {    
                            "no.":3,    
                            "students":53    
                        }    
                    ]    
                },    
                {    
                    "name":"junior",    
                    "class":[    
                        {    
                            "no.":1,    
                            "students":41    
                        },    
                        {    
                            "no.":2,    
                            "students":42    
                        },    
                        {    
                            "no.":3,    
                            "students":43    
                        }    
                    ]    
                }    
            ]    
        }    
    }    
]  

如何解析JSONObject(附案例)

private void parseJson() {
        String json_str = "{\"name\":\"张三\",\"age\":21}";
        try {
            JSONObject mJSONObject = new JSONObject(json_str);
            String name = mJSONObject.getString("name");
            String age = mJSONObject.getString("age");
            nameTv.setText(name);
            ageTv.setText(age);

        } catch (JSONException e) {
            e.printStackTrace();
        }

如何解析JSONArray

 private void arrayparseJson() {
        String json_str = "[ {\"name\":\"张三\",\"age\":21}, {\"name\":\"李四\",\"age\":22}]";
        try {
            JSONArray jsonArray = new JSONArray(json_str);
            JSONObject obj1 = jsonArray.getJSONObject(0);
            String name = obj1.getString("name");
            int age = obj1.getInt("age");
            JSONObject obj2 = jsonArray.getJSONObject(1);
            String name2 = obj2.getString("name");
            int age2 = obj2.getInt("age");
            nameTv.setText(name);
            nameTv2.setText(name);
            ageTv.setText(age + "");
            ageTv2.setText(age + "");

        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

你可能感兴趣的:(android)