json数据的解析

发布于:2024-07-04 ⋅ 阅读:(87) ⋅ 点赞:(0)

1. Json是什么?

   JavaScript Object Natation, 一种轻量级的数据交换格式, 与XML一样, 广泛被采用的客户端和服务端交互的解决方案!具有良好的可读和便于快速编写的特性。

2. Json与XML的比较

JSON和XML的数据可读性基本相同;

JSON和XML同样拥有丰富的解析手段

JSON相对于XML来讲,数据的体积小

JSON与JavaScript的交互更加方便

JSON对数据的描述性比XML较差

JSON的速度要远远快于XML

3. Json的格式规范

    就像协议一样,肯定是有一套规范的,毕竟双方都是通过Json字符串来传递数据,语法规则如下: 数据在名称/值对中;数据由逗号分隔;花括号保存对象;方括号保存数组; 而Json数据的书写格式:名称/值对 比如: "person":"coder-pig" 比如一个简单的Json字符串:

4. Android给我们提供的Json解析类

JSONObject: Json对象,可以完成Json字符串与Java对象的相互转换

JSONArray: Json数组,可以完成Json字符串与Java集合或对象的相互转换

JSONStringer: Json文本构建类,这个类可以帮助快速和便捷的创建JSON text, 每个JSONStringer实体只能对应创建一个JSON text

JSONTokener:Json解析类

JSONException:Json异常

5.简单的Json字符串解析示例

private void parseEasyJson(String json){
    persons = new ArrayList<Person>();
    try{
        JSONArray jsonArray = new JSONArray(json);
        for(int i = 0;i < jsonArray.length();i++){
            JSONObject jsonObject = (JSONObject) jsonArray.get(i);
            Person person = new Person();
            person.setId(i+"");
            person.setName(jsonObject.getString("name"));
            person.setAge(jsonObject.getString("age"));
            persons.add(person);
        }
    }catch (Exception e){e.printStackTrace();}
}
private void parseDiffJson(String json) {
    try {
        JSONObject jsonObject1 = new JSONObject(json);
        Log.e("Json", json);
        JSONArray jsonArray = jsonObject1.getJSONArray("ch");
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject jsonObject = (JSONObject) jsonArray.get(i);
            //取出name
            String sname = jsonObject.getString("names");
            JSONArray jarray1 = jsonObject.getJSONArray("data");
            JSONArray jarray2 = jsonObject.getJSONArray("times");
            Log.e("Json", sname);
            Log.e("Json", jarray1.toString());
            Log.e("Json", jarray2.toString());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

}

网站公告

今日签到

点亮在社区的每一天
去签到