JOSN用于給數(shù)據(jù)添加標(biāo)記全稱是javaScript Object Notation
是一種輕量級(jí)的數(shù)據(jù)交換格式
這種格式最早應(yīng)用于javaScript中,JSON 語(yǔ)法是javaScript對(duì)象表示語(yǔ)法的子集
在java中提供了解析JSON格式的類(lèi)庫(kù)
具有良好的可讀性和快速編寫(xiě)的特性
Json里的數(shù)據(jù)以一種鍵值對(duì)的形式存在
JSON 有三種首先是java官方的解析開(kāi)元jar包 還有一種是谷歌的JSON 還有一種阿里的Fast-JSON
{} 雙括號(hào)表示對(duì)象
[] 中括號(hào)表示數(shù)組
"" 雙引號(hào)內(nèi)是屬性或值
: 冒號(hào)表示后者是前者的值(這個(gè)值可以是字符串煞赢、數(shù)字抛计、也可以是另一個(gè)數(shù)組或?qū)ο?
所以 {"name": "Michael"} 可以理解為是一個(gè)包含name為Michael的對(duì)象
而[{"name": "Michael"},{"name": "Jerry"}]就表示包含兩個(gè)對(duì)象的數(shù)組
當(dāng)然了,你也可以使用{"name":["Michael","Jerry"]}來(lái)簡(jiǎn)化上面一部,這是一個(gè)擁有一個(gè)name數(shù)組的對(duì)象
首先是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);// 下標(biāo)從0開(kāi)始
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);
}
}