Json的生成和读取2(JSONArray+JSONObject)

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

猜你喜欢

转载自blog.csdn.net/yh18668197127/article/details/85059736