Java中使用 JSON
虽然JAVA是相当流行的编程语言,但做为运维人员,基本很少用JAVA语言,不过近期因为某对接项目开发厂商使用JAVA开发的,在某些数据对接时,给提提到使用的数据类型为JSON,半天讲不明白,没办法,自己用临时学到的蹩脚JAVA写了一个处理json的demo。这里使用到的json模块为 JSON.simple 。它完全兼容JSON的标准(RFC4627),可以用JSON.simple来编码或解码JSON文本。
JSON和java之间的映射关系如下:
JSON | Java |
---|---|
string | java.lang.String |
number | java.lang.Number |
true | false | java.lang.Boolean |
null | null |
array | java.util.List |
object | java.util.Map |
一、将java数据实例化为json
使用 java.util.HashMap 的子类 JSONObject 编码一个 JSON 对象。这里并没有提供顺序。如果你需要严格的元素顺序,请使用 JSONValue.toJSONString(map) 方法的有序映射实现,具体代码如下:
1import org.json.simple.JSONObject;
2class JsonEncodeDemo
3{
4 public static void main(String[] args)
5 {
6 JSONObject obj = new JSONObject();
7 obj.put("name", "foo");
8 obj.put("num", new Integer(100));
9 obj.put("balance", new Double(1000.21));
10 obj.put("is_vip", new Boolean(true));
11 System.out.print(obj);
12 }
13}
以上代码执行后,输出结果如下:
1{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}
二、解析JSON数据为java数据类型
这里使用了 JSONObject 和 JSONArray,其中 JSONObject 就是 java.util.Map,JSONArray 就是 java.util.List,因此我们可以使用 Map 或 List 的标准操作访问它们:
1import org.json.simple.JSONObject;
2import org.json.simple.JSONArray;
3import org.json.simple.parser.ParseException;
4import org.json.simple.parser.JSONParser;
5class JsonDecodeDemo
6{
7 public static void main(String[] args)
8 {
9 JSONParser parser=new JSONParser();
10 String s = "[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]";
11 try{
12 Object obj = parser.parse(s);
13 JSONArray array = (JSONArray)obj;
14 System.out.println("The 2nd element of array");
15 System.out.println(array.get(1));
16 System.out.println();
17 JSONObject obj2 = (JSONObject)array.get(1);
18 System.out.println("Field \"1\"");
19 System.out.println(obj2.get("1"));
20 s = "{}";
21 obj = parser.parse(s);
22 System.out.println(obj);
23 s= "[5,]";
24 obj = parser.parse(s);
25 System.out.println(obj);
26 s= "[5,,2]";
27 obj = parser.parse(s);
28 System.out.println(obj);
29 }catch(ParseException pe){
30 System.out.println("position: " + pe.getPosition());
31 System.out.println(pe);
32 }
33 }
34}
执行后,输出如下:
1The 2nd element of array
2{"1":{"2":{"3":{"4":[5,{"6":7}]}}}}
3Field "1"
4{"2":{"3":{"4":[5,{"6":7}]}}}
5{}
6[5]
7[5,2]
更详细的用法也可以参考csdn上的博客 org.json.simple使用详解 。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/java-json/5906.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.