JSON

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 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)