持续输出学习 持续发光 共同进步!
什么是Json
官网定义:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。
Json 格式:
形如{key:value}键值对格式的数据,一般key为字符串。
jdk不提供json支持,需从Json 官网下载Json所依赖的jar包才能解析Json格式。
Json-Java
下载的Json-Java为zip包,里面为.java文件,不能直接引用,我们一般引用的都是经编译过后的.class文件。需打包为jar后方可使用。使用eclipse的Export 到处导出为JAR file即可。
打包之后结果:
Json的应用
Map对象转Json
JSONObject 的new JSONObject()方法
输出结果:
普通对象转Json
输出结果:
字符串转Json
输出结果:
文件转Json
per.json文件内容
先将.json文件读取后用字符串存储,再将该字符串转Json
输出结果:
使用commons-io.jar 封装好的方法将文件转为字符串 省去了自己手写读取文件将文件转为字符串。
生成json文件
json对象.write()
Writer为抽象类,需使用其子类
注意:
若不使用w.flush() ,p.json文件为空。
总结
Map、JavaBean对象、字符串格式json数据转Json
使用:JSONObject json = new JSONObject(Map/JavaBean对象/字符串格式json);
String格式的json数组转json数组
JSONArray jsonArray = new JSONArray(String格式的json数组);
结果:
使用json.jar 不能将Map转为JSONArray,需借助功能更为强大的Json-lib
JSON-lib官网
【官方描述】
JSON-lib is a java library for transforming beans, maps, collections, java arrays and XML to JSON and back again to beans and DynaBeans.
可以看到JSON-lib支持beans, maps, collections, java arrays 和XML 转为 JSON。
Json-lib至少包括一下jar包,都可以在maven仓库找到对应的版本的jar包:
【官方描述】
Json-lib comes in two flavors, depending on the jdk compatibility. json-lib-x.x-jdk13 is compatible with JDK 1.3.1 and upwards. json-lib-x.x-jdk15 is compatible with JDK 1.5, includes support for Enums in JSONArray and JSONObject.
Json-lib有两种风格,依赖于jdk的兼容性。x-jdk13兼容JDK 1.3.1及以上版本。json-lib-x。x-jdk15兼容JDK 1.5。因此除了上述5个包,还需要用到 json-lib-x.x-jdk13 (根据你的jdk版本选择json-lib-x.x-jdk13还是json-lib-x.x-jdk15 )。
结果:
将JSONArray 转Map对象
结果:
总结:
json-lib包比json.jar功能更加强大。使用json-lib的JSONObject只需:
net.sf.json.JSONObject jsonObject =new net.sf.json.JSONObject();
jsonObject= jsonObject.fromObject(字符串/map/JavaBean);
就可以将字符串/map/JavaBean转为Json对象