JSON

作者: 安安静静写代码 | 来源:发表于2017-08-25 17:11 被阅读11次

    JOSN用于给数据添加标记全称是javaScript Object Notation

    是一种轻量级的数据交换格式

    这种格式最早应用于javaScript中,JSON 语法是javaScript对象表示语法的子集

    在java中提供了解析JSON格式的类库

    具有良好的可读性和快速编写的特性

    Json里的数据以一种键值对的形式存在

    JSON 有三种首先是java官方的解析开元jar包 还有一种是谷歌的JSON 还有一种阿里的Fast-JSON

    {} 双括号表示对象

    [] 中括号表示数组

    "" 双引号内是属性或值

    : 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)

    所以 {"name": "Michael"} 可以理解为是一个包含name为Michael的对象

    而[{"name": "Michael"},{"name": "Jerry"}]就表示包含两个对象的数组

    当然了,你也可以使用{"name":["Michael","Jerry"]}来简化上面一部,这是一个拥有一个name数组的对象

    首先是java官方的JSON
    JSON解析

    
    package com.qf.demo;
    
    import java.util.ArrayList;
    
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    
    public class Test3 {
    
        public static void main(String[] args) {
            String string="[{name:'zhangsan',age:20},{name:'lisi',age:21},{name:'wangwu',age:22}]";
            
            try {
                ArrayList<Person> persons = new ArrayList<>();
                JSONArray  array = new JSONArray(string);
                for (int i = 0; i < array.length(); i++) {
                    JSONObject object = array.getJSONObject(i);// 下标从0开始
                    String name = object.getString("name");
                    int age  = object.getInt("age");
                    Person person  = new Person(name, age);
                    persons.add(person);
                }
                
                System.out.println(persons);
                
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            
        }
    }
    
    

    反向操作

    package com.qf.demo2;
    
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    
    public class Test3 {
    
        public static void main(String[] args) {
            // {"no":1,"name":"android","employees":[{"name":"zhangsan","age":3},{"name":"lisi","age":5},{"name":"wangw","age":2}]}
            
            JSONObject object = new JSONObject();
            try {
                object.put("no", 1);
                object.put("name", "android");
                
                
                JSONArray array = new JSONArray();
                JSONObject object2 = new JSONObject();
                object2.put("name", "zhangsan");
                object2.put("age", 3);
                array.put(object2);
                JSONObject object3 = new JSONObject();
                object3.put("name", "lis");
                object3.put("age", 5);
                array.put(object3);
                JSONObject object4 = new JSONObject();
                object4.put("name", "wangwu");
                object4.put("age", 6);
                array.put(object4);
                
                
                object.put("employees", array);
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            System.out.println(object);
            
        }
    }
    
    

    相关文章

      网友评论

          本文标题:JSON

          本文链接:https://www.haomeiwen.com/subject/mptpdxtx.html