JSONObject,JSONArray,String,Map间的互转

一、使用FastJson

导入依赖

<!-- fastjson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.58</version>
</dependency>

对象转Map

SvCatalog svCatalogOne = svCatalogMapper.selectOne(queryWrapper);
Map svCatalogMap = JSONObject.parseObject(JSONObject.toJSONString(), Map.class);

对象转为json

Student student = new Student(0, "Aaron", 24);
System.out.println(JSON.toJSONString(student));
输出结果为:{"age":24,"id":0,"name":"Aaron"}

json转对象

Person person = new Person(20, "John", "Doe", new Date());
String jsonObject = JSON.toJSONString(person);
Person newPerson = JSON.parseObject(jsonObject, Person.class);

jsonObject转Map<String,Object>

String jsonStr="{\"uuid\":\"7429ebc71e12908cbfbbc963f8a92442\",\"userId\":\"38b76fb316634fc197181a17baafc7a3\",\"status\":1,\"isRead\":1,\"advice\":\"可以可以吗\"}";
 Map<String, Object> map = JSON.parseObject(jsonStr,new TypeReference<Map<String, Object>>(){} );

json数组转List<Map<String, Object>>

String strJson="[{\"url\":\"www.baidu.com\",\"remark\":\"百度网站\"},{\"url\":\"www.sanya.com\",\"remark\":\"新浪\"}]";
List<Map<String, Object>> remarkList = (List<Map<String, Object>>) JSON.parse(strJson);

二、使用hutool工具

导入依赖

<dependency>
 	<groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.5.0</version>
</dependency>

创建JSONObject

// 方法1
JSONObject json1 = JSONUtil.createObj()
  .put("a", "value1")
  .put("b", "value2")
  .put("c", "value3");
// 方法2
JSONObject json1 = new JSONObject();

转换

1.JSON字符串解析

String jsonStr = "{\"b\":\"value2\",\"c\":\"value3\",\"a\":\"value1\"}";
//方法一:使用工具类转换
JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
//方法二:new的方式转换
JSONObject jsonObject2 = new JSONObject(jsonStr);
//JSON对象转字符串(一行) 
jsonObject.toString();
// 也可以美化一下,即显示出带缩进的JSON: 
jsonObject.toStringPretty();

2.JavaBean解析
首先我们定义一个Bean

// 注解使用Lombok
@Data
public class UserA {
    private String name;
    private String a;
    private Date date;
    private List<Seq> sqs;
}
解析为JSONObjectUserA userA = new UserA();
userA.setName("nameTest");
userA.setDate(new Date());
userA.setSqs(CollectionUtil.newArrayList(new Seq(null), new Seq("seq2")));
// truee表示跳过空值,否则会报错
JSONObject json = JSONUtil.parseObj(userA, true);

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值