侧边栏壁纸
博主头像
苏生生博主等级

这最美的秘密,是我们都在制造巧遇

  • 累计撰写 20 篇文章
  • 累计创建 17 个标签
  • 累计收到 11 条评论

目 录CONTENT

文章目录

java解析json格式的方法

苏生生
2023-05-24 / 1 评论 / 2 点赞 / 2,063 阅读 / 1,381 字 / 正在检测是否收录...

将String解析为JSON格式的方法通常有两种

1.使用fastjson

使用fastjson将字符串解析为JSON对象或JSON数组可以通过如下方式:

String jsonString = "{name: 'John', age: 20}";
JSONObject jsonObject = JSON.parseObject(jsonString);
JSONArray jsonArray = JSON.parseArray(jsonString);
//指定对象时会直接解析成java对象
USER user = JSON.pareObject(jsonString,user.class)

如果需要将一个Java对象转换为JSON格式的字符串,则可以使用fastjson的toJSONString()方法:

User user = new User("John", 20);
String jsonString = JSON.toJSONString(user);

2.使用Jackson:

使用Jackson将字符串解析为JSON对象或JSON数组可以通过如下方式:

String jsonString = "{name: 'John', age: 20}";
ObjectMapper objectMapper = new ObjectMapper();
//不需要定义java对象
JsonNode jsonNode = objectMapper.readTree(jsonString);
//需要定义java对象
User user = objectMapper.readValue(jsonString, User.class); // 假设 User 类存在,并且属性与 JSON 字符串中的字段对应

需要注意的是

  • 在执行readValue()方法时,必须提供一个能够反序列化为指定Java类对象的JSON字符串,否则会抛出JsonMappingException异常。而如果我们尝试将一个JSON字符串反序列化为一个不存在对应Java对象的类型,也会抛出异常。
  • 当调用 ObjectMapperreadTree() 方法时,如果提供的 JSON 字符串格式不正确,则会抛出 JsonProcessingException 异常。所以,在使用该方法时要确保提供的 JSON 字符串是有效的,并且符合 JSON 的语法规则。

如果需要将一个Java对象转换为JSON格式的字符串,则可以使用Jackson的writeValueAsString()方法:

User user = new User("John", 20);
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = objectMapper.writeValueAsString(user);

需要注意的是,在使用Jackson的时候,需要先创建一个ObjectMapper对象,然后通过使用该对象的方法来完成解析和转换。

总体而言,fastjson对于简单的JSON解析和转换比较方便、简单,性能也比较出色;而Jackson库提供了更多的适配器和功能,更加灵活、可定制化,同时也拥有强大的扩展生态系统。根据实际需求,选择最适合的JSON解析和转换库可以帮助提高开发效率。

2

评论区