阿里fastjson的用法

1、json和字符串互转

1.1 字符串转json对象

 JSONObject jsonObject = JSONObject.parseObject("");

1.2 json对象转字符串

private static void testJsonObjectToJsonStr(JSONObject jsonObject) {
        String jsonStr = jsonObject.toJSONString();
        System.out.println(jsonStr);
    }

2.json数组和字符串互转

2.1 json数组转字符串

String arrStr = JSONArray.toJSONString(jsonArray);

2.2 json字符串转json数组

private static JSONArray testJsonStrToJSONArray(String jsonString) {
 
        JSONObject jsonObject = JSONObject.parseObject(jsonString);
        //获取data数据,然后读取data数据中datastreams关键字对应的数组(有[]标示的为数组)
        JSONArray jsonArray1 = jsonObject.getJSONObject("data").getJSONArray("datastreams");
        //获取JsonArray下标对应的JsonObject
        JSONObject jsonArray2 = jsonArray1.getJSONObject(0);
        //其中的关键字datapoints对应的也是一个JsonObject数组
        JSONArray jsonArray3 = jsonArray2.getJSONArray("datapoints");
        System.out.println(jsonArray3);
 
     /*   int size = jsonArray3.size();
        //遍历1
        for(int i = 0; i < size; i++) {
            System.out.println(jsonArray3.getJSONObject(i));
        }*/
 
        //遍历2
        for(Object object: jsonArray3){
            System.out.println(object);
        }
        return jsonArray3;
    }

3.JavaBean与Json对象之间的转化

3.1 json对象转Javabean

JSONObject jsonObject = JSONObject.parseObject(beanStr);
 
        //第一种方式:使用TypeRefernce<T>,由于其构造方式使用protected进行修饰,故创建其子类
        Datapoint datapoint = JSONObject.parseObject(jsonObject.toJSONString(),new TypeReference<Datapoint>() {});

3.2Javabean转json对象

 String jsonString = JSONObject.toJSONString(datapoint);

 4.JavaList对象数组与JsonArray之间的转化

/**
     * 将JavaBeanList 转化为JsonArray
     */
    private static void testJavaListToJsonArray() {
        //模拟一个List<JabaBean>
        Location location1 = new Location();
        Location location2 = new Location();
        Datapoint datapoint1 = new Datapoint();
        Datapoint datapoint2 = new Datapoint();
        List<Datapoint> datapoints = new ArrayList<Datapoint>();
        location1.setLon("1122");
        location1.setLat("2233");
        datapoint1.setAt("2018-01-02");
        datapoint1.setValue(location1);
        datapoints.add(datapoint1);
        location2.setLon("3344");
        location2.setLat("4455");
        datapoint2.setAt("2018-01-03");
        datapoint2.setValue(location2);
        datapoints.add(datapoint2);
 
        //方法一:
        String arrString = JSONArray.toJSONString(datapoints);
        JSONArray jsonArray = JSONArray.parseArray(arrString);
        System.out.println(jsonArray);
        //方法二:
        JSONArray jsonArray1 = (JSONArray) JSONArray.toJSON(datapoints);
        System.out.println(jsonArray1);
    }
 
    //JavaList与JsonArray之间的转换
    private static void testJsonArrayToJavaList(String jsonString) {
        //已知JsonArray
        JSONArray jsonArray = testJsonStrToJSONArray(jsonString);
 
        //方法一:使用TypeReference<T>类,由于其构造方法使用protected进行修饰,故创造其子类
        List<Datapoint> datapoints = JSONArray.parseObject(jsonArray.toJSONString(),new TypeReference<ArrayList<Datapoint>>() {});
        System.out.println(datapoints);
 
        //方法二:使用Gson的思想
        List<Datapoint> datapoints1 = JSONArray.parseArray(jsonArray.toJSONString(),Datapoint.class);
        System.out.println();
    }

5.json字符串转map 

JSONObject obj = new JSONObject();
{
obj.put("key1", "value1");
obj.put("key2", "value2");
obj.put("key3", "value3");
}
Map<String, String> params = JSONObject.parseObject(obj.toJSONString(), new TypeReference<Map<String, String>>(){});
System.out.println(params);

//输出:{key3=value3, key2=value2, key1=value1}

 

发布了97 篇原创文章 · 获赞 208 · 访问量 5万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览