Java 取复杂json对象(fastjson)

Java 取复杂json对象(fastjson)

记录一下小菜鸡的学习之路
刚入职做项目,最近写代码的时候,调用之前公司大佬封装好的数据库接口,返回的Json数据很复杂,需要取其中的值。记录一下方便以后遇到解决。

**

正常来说是将json转为对象来进行操作,但由于公司框架限制,很麻烦所以只能直接取来使用。

**

不多BB直接上代码

//json数据  
{
    "msg":"请求成功",
    "Total":"1",
    "Rows":[
        {
            "ispay":"0"
        }
    ],
    "Subrows":[

    ],
    "status":"0"
}
//cs 是调用接口以后返回的json数据 
String cs = payServlet.doPay("checkmstatus", json);

//通过fastjson中的方法将json字符串转为json对象
JSONObject jscs= JSONObject.parseObject(cs);

//创建json数组来接收jscs中的Rows数组
jsonArray= jscs.getJSONArray("Rows");

//根据下表读取刚刚Rows中的属性,get中为json数组中json对象的名称
String lispay = (String) jsonArray.getJSONObject(0).get("ispay");

//然后得到lispay就可以正常做业务逻辑
...

我要取得数据是在json数组中的json对象,如果只是取json字符串中的对象直接.get(“属性”)就可以取到,多层嵌套就需要get多个属性,同样的道理。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 导入fastjson库 首先需要在项目中导入fastjson库,可以通过maven或gradle等方式添加依赖。 2. 定义Java对象 根据json数据结构,定义对应的Java对象。例如,下面是一个包含嵌套属性和数组的json数据: ``` { "name": "John", "age": 30, "address": { "city": "New York", "state": "NY" }, "phoneNumbers": ["212-555-1234", "646-555-4567"] } ``` 对应的Java对象可以定义如下: ```java public class Person { private String name; private int age; private Address address; private List<String> phoneNumbers; // getters and setters } public class Address { private String city; private String state; // getters and setters } ``` 3. 使用fastjson转换jsonJava对象 使用fastjson提供的API,将json数据转换为Java对象。下面是示例代码: ```java String json = "{\"name\":\"John\",\"age\":30,\"address\":{\"city\":\"New York\",\"state\":\"NY\"},\"phoneNumbers\":[\"212-555-1234\",\"646-555-4567\"]}"; Person person = JSON.parseObject(json, Person.class); ``` 其中,`JSON.parseObject()`方法用于将json字符串转换为Java对象,第一个参数是json字符串,第二个参数是要转换成的Java对象的class对象。 4. 访问Java对象的属性 转换后的Java对象可以直接访问属性,例如: ```java System.out.println(person.getName()); // 输出 John System.out.println(person.getAddress().getCity()); // 输出 New York System.out.println(person.getPhoneNumbers().get(0)); // 输出 212-555-1234 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值