Java中使用 JSON

2018年4月20日 发表评论 阅读评论

虽然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) 方法的有序映射实现,具体代码如下:

import org.json.simple.JSONObject;
class JsonEncodeDemo
{
    public static void main(String[] args)
    {
        JSONObject obj = new JSONObject();
        obj.put("name", "foo");
        obj.put("num", new Integer(100));
        obj.put("balance", new Double(1000.21));
        obj.put("is_vip", new Boolean(true));
        System.out.print(obj);
    }
}

以上代码执行后,输出结果如下:

{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}

二、解析JSON数据为java数据类型

这里使用了 JSONObject 和 JSONArray,其中 JSONObject 就是 java.util.Map,JSONArray 就是 java.util.List,因此我们可以使用 Map 或 List 的标准操作访问它们:

import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
import org.json.simple.parser.ParseException;
import org.json.simple.parser.JSONParser;
class JsonDecodeDemo
{
    public static void main(String[] args)
    {
        JSONParser parser=new JSONParser();
        String s = "[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]";
            try{
            Object obj = parser.parse(s);
            JSONArray array = (JSONArray)obj;
            System.out.println("The 2nd element of array");
            System.out.println(array.get(1));
            System.out.println();
            JSONObject obj2 = (JSONObject)array.get(1);
            System.out.println("Field \"1\"");
            System.out.println(obj2.get("1"));
            s = "{}";
            obj = parser.parse(s);
            System.out.println(obj);
            s= "[5,]";
            obj = parser.parse(s);
            System.out.println(obj);
            s= "[5,,2]";
            obj = parser.parse(s);
            System.out.println(obj);
        }catch(ParseException pe){
            System.out.println("position: " + pe.getPosition());
            System.out.println(pe);
        }
    }
}

执行后,输出如下:

The 2nd element of array
{"1":{"2":{"3":{"4":[5,{"6":7}]}}}}
Field "1"
{"2":{"3":{"4":[5,{"6":7}]}}}
{}
[5]
[5,2]

更详细的用法也可以参考csdn上的博客 org.json.simple使用详解




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

分类: C/C++/Java/Delphi 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.