JSONArray类
构造方法
JSONArray()
JSONArray(CollectioncopyFrom)
JSONArray(JSONTokener readFrom)
JSONArray(String json)
JSONArray(Object array)
常用方法:
Get
put
opt(不抛出异常的get)
remove
不常用方法:
Length获取长度
Join设定间隔字符并转为String
toString转为String并确定是否格式化(可以设定空格数)
(关键是可以用于格式化)
isnull是否为空
equal判断是否相等
hashcode转哈希值
toJsonObject(JsonArray)与另一个JSONArray一一对应生成一个JSONObject
JSONObject类
构造方法:
JSONObject()
JSONObject(Map copyFrom)
JSONObject(JSONTokener readFrom)
JSONObject(String json)
JSONObject(JSONObject copyFrom, String[] names)
常用方法:
Get
put
opt(不抛出异常的get)
accumulate追加
remove移除
不常用方法:
toString转为String并确定是否格式化(可以设定空格数)
(关键是可以用于格式化)
Length获取长度
isnull是否为空
has(String name)判断是否有值
基本不用:
keys返回迭代器(忘了什么是迭代器了)
names将names保存为JsonArray,
numbertostring(不知道)
quote(不知道)(好像已经弃用)
toJsonArray(不知道)
wrap(不知道)
示例代码
JSONObject root = new JSONObject();//实例一个JSONObject对象
root.put("cat", "it");//对其添加一个数据
JSONArray languages = new JSONArray();//实例一个JSON数组
JSONObject lan1 = new JSONObject();//实例一个lan1的JSON对象
lan1.put("id", 1);//对lan1对象添加数据
lan1.put("ide", "Eclipse");//对lan1对象添加数据
lan1.put("name", "Java");//对lan1对象添加数据
JSONObject lan2 = new JSONObject();//实例一个lan2的JSON对象
lan2.put("id", 2);//对lan2对象添加数据
lan2.put("ide", "XCode");//对lan2对象添加数据
lan2.put("name", "Swift");//对lan2对象添加数据
JSONObject lan3 = new JSONObject();//实例一个lan3的JSON对象
lan3.put("id", 3);//对lan3对象添加数据
lan3.put("ide", "Visual Studio");//对lan3对象添加数据
lan3.put("name", "C#");//对lan3对象添加数据
languages.put(0, lan1);//将lan1对象添加到JSON数组中去,角标为0
languages.put(1, lan2);//将lan2对象添加到JSON数组中去,角标为1
languages.put(2, lan3);//将lan3对象添加到JSON数组中去,角标为2
root.put("languages", languages);//然后将JSON数组添加到名为root的JSON对象中去
System.out.println(root);
System.out.println(languages);
System.out.println(lan1);
System.out.println(lan2);
System.out.println(lan3);
生成的Json数据
{
"cat": "it",
"languages": [{
"id": 1,
"ide": "Eclipse",
"name": "Java"
}, {
"id": 2,
"ide": "XCode",
"name": "Swift"
}, {
"id": 3,
"ide": "Visual Studio",
"name": "C#"
}]
}
JSONString类
用于拼写Json
JSONStringer()
array()
endArray()
endObject()
key(String name)
object()
toString()
value
JSONTokener类
这个只是前两个的助手类,不需要去了解它
(只用到构造方法和nextValue()方法)
JSONObject object =(JSONObject)new JSONTokener(json).nextValue();
___________________________________分割线______________________________________
重用度高的和复杂的推荐用Gson
使用次数少和简单的JsonArray+JsonObject
Json的生成和解析(Gson方法)
https://blog.csdn.net/yh18668197127/article/details/85042064