fastjson转list嵌套_fastjson-1.2.21 使用实例,复杂嵌套Java对象转json对象,复杂嵌套json对象转对应Java对象的代码实现...

本文通过一个实战示例详细介绍了如何使用Fastjson-1.2.21进行Java对象与复杂嵌套Json字符串的转换。包括创建工具类`JsonUtils`,演示了`parseObjToJson`和`parseJsonToObj`方法的使用,以及测试类`TestJsonMain`中涉及的Student、Car和Dog类的实例。同时,文章还讨论了泛型的简单应用和重写`toString()`方法的重要性。
摘要由CSDN通过智能技术生成

理论我就不多废话了,直接看代码吧。使用的是fastjson-1.2.21版本的来实现下面代码的。

主要是实现复杂的嵌套的Java对象,也就是对象嵌套对象的复杂对象,转换成json字符串。然后就是反过来,把复杂的json字符串转换成对应的嵌套的Java对象。

先上工具类。如下。

package com.lxk.json;

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONObject;

/**

* JSON 转换

*/

public final class JsonUtils {

/**

* 把Java对象转换成json字符串

*

* @param object 待转化为JSON字符串的Java对象

* @return json 串 or null

*/

public static String parseObjToJson(Object object) {

String string = null;

try {

//string = JSON.toJSONString(object);

string = JSONObject.toJSONString(object);

} catch (Exception e) {

System.out.println(e.getMessage());

}

return string;

}

/**

* 将Json字符串信息转换成对应的Java对象

*

* @param json json字符串对象

* @param c 对应的类型

*/

public static T parseJsonToObj(String json, Class c) {

try {

//两个都是可行的,起码我测试的时候是没问题的。

//JSONObject jsonObject = JSONObject.parseObject(json);

JSONObject jsonObject = JSON.parseObject(json);

return JSON.toJavaObject(jsonObject, c);

} catch (Exception e) {

System.out.println(e.getMessage());

}

return null;

}

}

从代码中引入的包来看,真就是简单的只是引用了com.alibaba.fastjson这个包里面的2个类。所以,使用这个包,就很简单,不耦合其他工具包。

上面对象转json字符串的方法还可以如下修改下。

/**

* 把Java对象转换成json字符串

*

* @param object 待转化为JSON字符串的Java对象

* @return json 串 or null

*/

public static String parseObjToJson(T object) {

String string = null;

try {

//string = JSON.toJSONString(object);

string = JSONObject.toJSONString(object);

} catch (Exception e) {

System.out.println(e.getMessage());

}

return string;

}把穿进去的Object类给换成泛型,显得高级点点。这样的话,2个方法都是使用的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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. 使用fastjsonjsonJava对象 使用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、付费专栏及课程。

余额充值