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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容