之前读过一本书《JSON必知必会》,深受启发,可以说是一本系统学习JSON的绝佳之选。再次强力推荐。旧文如下:[​


​JSON基础​​。 本次再次送上两个视频版本:

PDF版本后台回复关键字JSON获取下载地址,嫌麻烦的可以在FunTester公众号菜单里面找到我的微信二维码,添加好友。![​


​如何获取PDF版本JSON必知必会​​下面以​


​fastjson​​为例简单演示一下JSON对象的操作:

创建

​JSONObject fun = new JSONObject();​

添加

​fun.put("key", "value");​​这里第一个参数必需是​


​java.lang.String​​,第二个参数必需是​​java.lang.Object​​,意思就是是个对象就行,不是对象只要能对应的包装类也行。

删除

​fun.remove("key");​​这里有个坑:[​


​不要在遍历的时候删除​

获取
Java
fun.get("key");
fun.getString("key");
fun.getInteger("key");
fun.getIntValue("key");

其他GET方法都是依赖于​​com.alibaba.fastjson.JSONObject#get​​,然后返回值是​​java.lang.Object​​,再根据类型转成不同的对象。这里也有坑:[​


​getInteger还是getIntValue,这是一个问题​

其他
Java
fun.size();//长度
fun.isEmpty();//是否空
fun.entrySet();//遍历
fun.keySet();//key集合
fun.clear();//清空
fun.containsKey("key");//是否包含key
fun.containsValue("value");//是否包含value

当然这里也有坑,遍历​​com.alibaba.fastjson.JSONObject​​对象的时候,选取方法​​com.alibaba.fastjson.JSONObject#entrySet​​,而不用​​com.alibaba.fastjson.JSONObject#keySet​​。

高级用法
Java
fun.compute("key", (x, y) -> {
if (y == null) {
return "no exists";
}
return "exists";
});


fun.computeIfAbsent("list", (f -> new ArrayList()));
fun.computeIfPresent("key", (x, y) -> {
if (y == null) {
return "yes";
}
return "no";
});

当然还有很多API,只不过平时用得少,这里就不演示了。还有一种初始化语法,[​​给JSONObject添加自定义遍历方法​​。

Have Fun ~ Tester !