【JAVA】各JSON工具对比及常用转换

JSON工具及常使用的转换

一、四大JSON工具

工具名称使用场景
Gson需要先建好对象的类型及成员才能转换数据量少,javabean->json
*FastJson复杂的Bean转换Json会有问题数据量少,字符串-》json
Jackson转换的json不是标准json数据量大,不能对对象集合解析,只能转成一个Map,字符串-》json,javabean->json
Json-lib不能满足互联网需求

FastJson进行JSON字符串解析,Jackson将集合转成JSON格式字符串

二、常用转换

(1)FastJson

a.对象转JSON【toJSONString()】
String objJson = JSON.toJSONString(Object object);
b.Map转JSON【toJSONString()】
Map<String, Object> map = new HashMap<String, Object>();
map.put("key1", "One");
map.put("key2", "Two");
String mapJson = JSON.toJSONString(map);
c.List<Map>转JSON【toJSONString()】
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("key1", "One");
map1.put("key2", "Two");
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("key1", "Three");
map2.put("key2", "Four");
list.add(map1);
list.add(map2);
String listJson = JSON.toJSONString(list);
b.自定义JAVAbean(实体类)转JSON【toJSONString()】
User user = new User();
user.setUserName("李四");
user.setAge(24);     
String userJson = JSON.toJSONString(user);

json的子类反序列化,转回实体

JSONObject,JSONArray是JSON的两个子类。
JSONObject相当于 `Map<String, Object>`,
JSONArray相当于 `List<Object>`。
c.JSONArray转list【toArray()】
List<Object> lists = jsonArray.subList(0, jsonArray.size());
Integer[] ints = lists.toArray(new Integer[lists.size()]);
d.JSONObject转JSONArray
// string转JSONObject 【JSONObject.parseObject()】
JSONObject jsonData = JSONObject.parseObject(jsonContent);
JSONArray jsonArray = new JSONArray();
jsonData.forEach((key,value) -> {
    jsonArray.add(value);
});
e.判断是否json
字符串: `JSONObject.parseObject(jsonContent);`
数组: `JSONObject.parseArray(jsonContent);`
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jackson 是一个功能强大的 JSON 转换工具,提供了许多实用的方法。以下是 Jackson 常用方法的一些示例: 1. 将 JSON 字符串转换Java 对象 使用 readValue() 方法将 JSON 字符串转换Java 对象。例如: ``` String json = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; ObjectMapper objectMapper = new ObjectMapper(); Person person = objectMapper.readValue(json, Person.class); ``` 2. 将 Java 对象转换JSON 字符串 使用 writeValueAsString() 方法将 Java 对象转换JSON 字符串。例如: ``` ObjectMapper objectMapper = new ObjectMapper(); Person person = new Person("John", 30, "New York"); String json = objectMapper.writeValueAsString(person); ``` 3. 将 JSON 字符串转换JsonNode 对象 使用 readTree() 方法将 JSON 字符串转换JsonNode 对象,可以使用 JsonNode 对象进行 JSON 树遍历。例如: ``` String json = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; ObjectMapper objectMapper = new ObjectMapper(); JsonNode jsonNode = objectMapper.readTree(json); ``` 4. 将 Java 对象转换JsonNode 对象 使用 valueToTree() 方法将 Java 对象转换JsonNode 对象。例如: ``` ObjectMapper objectMapper = new ObjectMapper(); Person person = new Person("John", 30, "New York"); JsonNode jsonNode = objectMapper.valueToTree(person); ``` 5. 将 Java 对象转换JSON 字符串并写入文件 使用 writeValue() 方法将 Java 对象转换JSON 字符串并写入文件。例如: ``` ObjectMapper objectMapper = new ObjectMapper(); Person person = new Person("John", 30, "New York"); File file = new File("person.json"); objectMapper.writeValue(file, person); ``` 这些方法只是 Jackson 提供的一小部分功能,如果您需要更多的功能,请查看 Jackson 的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值