fastjson对json对象的操作

fastjson的简单使用

前言:
前一段时间老大给了我一个业务任务,需要调用一个第三方接口,然后对返回的数据进行二次封装
我想:那不是手到擒来? 用openfeign远程调用第三方接口,然后自定义一个类接收一下
开始实时计划: 当我成功拿到第三方接口的数据后(我丢,我傻眼了),返回的数据当然是json格式的(毋庸置疑),但是这个json数据结构真是太复杂了,里面最起码套三四层 json。哎,没办法,既然选择了使用自定义类那就根据返回的json格式自定义吧
开始自定义类: 为了与json格式保持一致,我写的类也是,类中有内部类,套了三四层。
用自定义类接收返回值: 执行代码。。。。。 运行报错。。。。 我去***! 写了那么久竟然报格式解析错误。 这点我也是能理解的,毕竟那个json数据格式那么复杂。。。
怎么办呢?。。。 想了好久,终于在网上找到了答案
用fastjson接收json对象,并对该json进行操作

接下来我以操作这个JSON为例(我工作见得那个json结构比这个复杂多了)

{
	"部门名称":"研发部",
	"部门成员":[
	{"ID": 1001, "name": "张三", "age": 24},
	{"ID": 1002, "name": "李四", "age": 25},
	{"ID": 1003, "name": "王五", "age": 22}],
	"部门位置":"xx楼21号"
}

目标:张三的年龄
请思考如下代码:

public Object test1(){
    String json = "{\n" +
            "\t\"部门名称\":\"研发部\",\n" +
            "\t\"部门成员\":[\n" +
            "\t{\"ID\": 1001, \"name\": \"张三\", \"age\": 24},\n" +
            "\t{\"ID\": 1002, \"name\": \"李四\", \"age\": 25},\n" +
            "\t{\"ID\": 1003, \"name\": \"王五\", \"age\": 22}],\n" +
            "\t\"部门位置\":\"xx楼21号\"\n" +
            "}";

    // 首先把json字符串转成json对象
    JSONObject totalJsonObject = (JSONObject)JSON.parseObject(json);
    // 1、 获取到 “成员部门” 这个数组对象
    JSONArray cybm = totalJsonObject.getJSONArray("部门成员");
    // 2、 获取该数组的第一个json对象
    JSONObject jsonObject = cybm.getJSONObject(0);
    // 3、 获取这个对象的“age”
    String age = jsonObject.getString("age");
    return age;
}

操作json对象的常用方法如下

xxx.getJSONArray("key"):  获取json对象的json数组
xxx.getJSONObject(index): 获取json数组的第index个json对象
xxx.getJSONObject("key"): 获取json对象内层名为"key"的内层json对象
xxx.getString("key"):  获取json对象中key为“key”的字符串

fastjson其他的API方法这里我就不总结了,不知道有没有人和我遇到同样的需求?如果有,希望这片文章能够帮到你!


版权声明:本文为qq_45464560原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。