java解析json字符串,解析json格式的字符串

我们经常要解析JSON,比如下面一段JSON,是某个HTTP请求的返回:

{

    "status": "200",

    "message": "success"

}

我们想取它的message字段,该怎么操作呢?不幸的是,java标准库并没有提供解析JSON的功能,但是,我们可以使用很多的第三方库来处理这个问题。假设我们有一个类Response,对应前面的JSON:

class Response{

    private String status;

    private String message;

    ... getter/setter

}

下面介绍几个常用JSON解析类库。注意:下面类库的版本号都是写作时较新的版本,使用时可以去maven中心仓查找一下最新版本。

Gson

Gson是Google开源的一个JSON库,被广泛使用。首先,我们在maven中引入Gson:

<dependency>

    <groupId>com.google.code.gson</groupId>

    <artifactId>gson</artifactId>

    <version>2.9.1</version>

</dependency>

Gson将JSON解析成对象

代码如下:

String json = "{\"status\": \"200\",\"message\": \"success\"}";

Gson gson = new Gson();

Response response = gson.fromJson(json, Response.class);

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

Gson直接解析JSON并获取字段

有时候,我们没有JSON对应的对象,只是简单的取一个字段,这时也可以通过Gson来操作。

String json = "{\"status\": \"200\",\"message\": \"success\"}";

JsonObject jsonObject = JsonParser.parseString(json).getAsJsonObject();

System.out.println(jsonObject.get("message").getAsString());

Jackson

Jackson是当前用的比较广泛的,用来序列化和反序列化 json 的 Java 的开源框架。

首先,我们在maven中引入Jackson:

<!--  -->

<dependency>

    <groupId>com.fasterxml.jackson.core</groupId>

    <artifactId>jackson-databind</artifactId>

    <version>2.14.0</version>

</dependency>

Jackson将JSON解析成对象

代码如下:

ObjectMapper objectMapper = new ObjectMapper();

String json = "{\"status\": \"200\",\"message\": \"success\"}";

try {

    Response response = objectMapper.readValue(json, Response.class);

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

} catch (JsonProcessingException e) {

    throw new RuntimeException(e);

}

Jackson直接解析JSON并获取字段

代码如下:

ObjectMapper objectMapper = new ObjectMapper();

String json = "{\"status\": \"200\",\"message\": \"success\"}";

try {

    JsonNode jsonNode = objectMapper.readTree(json);

    System.out.println(jsonNode.get("message").asText());

} catch (JsonProcessingException e) {

    throw new RuntimeException(e);

}

Fastjson

Fastjson是阿里开源的高性能JSON库。但是,由于之前围绕Fastjson的autotype特性出过较多的安全问题,不建议使用(仅个人观点。)。

首先,我们在maven中引入Jackson:

<dependency>

    <groupId>com.alibaba.fastjson2</groupId>

    <artifactId>fastjson2</artifactId>

    <version>2.0.19</version>

</dependency>

Fastjson将JSON解析成对象

代码如下:

String json = "{\"status\": \"200\",\"message\": \"success\"}";

Response response = JSON.parseObject(json, Response.class);

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

Fastjson直接解析JSON并获取字段

代码如下:

String json = "{\"status\": \"200\",\"message\": \"success\"}";

JSONObject data = JSON.parseObject(json);

System.out.println(data.getString("message"));

得益于丰富的生态,Java还有很多其他优秀的Json库,比如JSON-java,hutool等,使用方法也是大同小异,就不一一全部详细介绍了。

本文来自投稿,不代表展天博客立场,如若转载,请注明出处:https://www.me900.com/327141.html

(0)

相关推荐

  • 江苏苏州疫情最新消息 最近江苏苏州的疫情情况如何

    12月12日0时至24时 苏州市新冠肺炎疫情情况 12月12日0时至24时,苏州新增新冠肺炎本土确诊病例2例,新增本土无症状感染者26例。其中19例在隔离中发现,8例在重点人员筛查中发现,1例在协查中发现。 苏州市新冠肺炎疫情联防联控指挥部 2022年12月13日 各地疫情防控指挥机构和疾控机构联系电话 各地疫情防控指挥机构联系电话: 苏州市疫情防控指挥部 …

    用户投稿 2023-06-02
  • java虚拟主机,java虚拟机使用教程

    《Java虚拟主机:深入探究与应用》 一、引言 在当今的互联网时代,Java虚拟主机作为一种重要的技术架构,扮演着越来越关键的角色。它为企业和开发者提供了一个稳定、高效的环境,使得Java应用程序能够在网络上运行。然而,对于很多人来说,Java虚拟主机可能还是一个比较陌生的概念,它到底是什么?有哪些特点和优势?如何使用和管理它?这些问题可能一直困扰着许多人。…

    2025-09-22
  • fifa18正版,fifa18世界杯模式下载

    EA旗下足球游戏FIFA18最近正式开始了2018年俄罗斯世界杯活动。在活动中玩家在对自己的游戏下载升级包后可以获得两个世界杯模式:真实球赛和世界杯赛事,前者完全按照今年世界杯打造,后者则允许玩家选择自己心仪的任意球队参与世界杯。这就可以实现中国队夺冠的梦想了。 另外说一下今年FIFA游戏预测捧起大力神杯的是法国队,世界杯开幕式马上就要开始了,也期待一下世界…

    2023-07-11
  • 电脑网络,计算机网络知识全面梳理图片

    第一章:概述 1.1互联网概述 计算机网络定义: 计算机网络主要是由一些通用的、可编程的硬件互连而成的,而这些硬件并非专门用来实现某一特定目的(例如,传送数据或视频信号)。这些可编程的硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用。 重要的两点: 1多种硬件 (包括:计算机,智能手机,智能传感器等。) 1多种应用 (包括:数据、语音、视频…

    2023-07-03 用户投稿
  • 后来居上上一句(后来居上上一句成语)

    晋楚更霸,赵魏困横。假途灭虢,践土会盟。何遵约法,韩弊烦刑。起翦颇牧,用军最精。宣威沙漠,驰誉丹青。 上一次讲到了“俊义密勿,多士实宁”,下面是“晋楚更霸,赵魏困横”。这一段还是讲春秋战国。 春秋战国是一个相互征伐、兼并的年代,也就是打仗比较多的年代。说起打仗,人们用计谋、谋略就会比较多。所以谋略思想在这个时代相当发达。 前面我们讲过,春秋时代第一个霸主是齐…

    2023-05-26 用户投稿
  • 淘宝11.11活动,淘宝11.11活动满减

    《淘宝11.11活动:一场电商狂欢的深度解析》 一、活动背景与起源 淘宝11.11活动也许可以追溯到很久以前,最初可能只是淘宝为了提升销量和知名度而举办的一个小型促销活动。 随着时间的推移,这个活动逐渐壮大,成为了全球最大的购物狂欢节之一。 我觉得它的成功可能在于抓住了人们对于购物的热爱和追求实惠的心理。 就像我们在生活中,每当遇到打折促销的时候,总是会忍不…

    用户投稿 2025-06-17
  • 柴静新浪博客,柴静新浪博客:窥探人性的深度报道

    在网络上,常常会有一些有关于人性的问题,比如说经常会有一些有关于女朋友考验男朋友的问题。 对于这一类的问题,评论的答案往往是出奇的一致,所有人都劝身为女朋友的角色,千万不要轻易地去考验自己的配偶,如果配偶输了,那是他配不上你,但倘若配偶赢了,则你配不上他,这个道理自然浅显易懂,不过,事实上是,人性经不起考验。 著名主持人柴静就曾经说过:“永远不要高估人性的善…

    用户投稿 2023-05-16
  • 过期备案域名查询,网站备案过期

    《过期备案域名查询:全面解析与实用指南》 一、什么是过期备案域名查询 过期备案域名查询,简单来说,就是通过特定的工具和方法,去查找那些已经过期但尚未被重新注册的域名。也许你会问,为什么要查询过期备案域名呢?这可能会给我们带来一些意想不到的收获哦。比如,有些曾经有过一定影响力的网站,可能因为各种原因过期了,但是这些域名本身可能还具有一定的价值。就好像是一个被遗…

    用户投稿 2026-01-06
  • 串珠子手工活外发不要押金钱是真的吗(手工活无押金串珠子)

    受疫情影响,不少求职者找工作犯了难!最近,有些犯不法分子开始蠢蠢欲动,他们利用了求职者在疫情期间急于找工作的心态来诈骗钱财。他们通过“手工活外包”“工资日结”这样的网络招工广告来进行诱导,很多求职者就入坑了!   范女士在网络平台看到了一则招聘信息,工作内容就是接收十字绣、串珠子之类的手工活,工资按件计算,多劳多得。在交完押金后,范女士发现接下来的…

    2021-11-02 用户投稿
  • 点滴网,好用的网站推荐

    一、学习资源1.大学资源网http://www.dxzy163.com/ 大学资源网是一个完全免费并且功能非常强大的学习网站2.医学微视http://www.mvyxws.com/ 以视频的方式分享各种医学知识的良心网站3.Ehowhttps://www.ehow.com/ 高质量生活技巧教程分享网站 芝加哥艺术博物馆开放了五万件馆藏作品的高清图片资源。 完…

    用户投稿 2023-07-08
  • 解冻保证金,解冻保证金页面在哪

    《解冻保证金:从了解到实操的全面指南》 在网站运营的过程中,保证金是一个经常被提及的概念。 而解冻保证金则是许多网站用户和运营者都关心的问题。 那么,什么是解冻保证金?为什么会有保证金的存在?又该如何解冻保证金呢?本文将为你详细解答这些问题。 一、保证金的概念与作用 保证金,简单来说,就是为了保证某种行为的合规性或保障某种权益而预先缴纳的一定金额。 在网站运…

    用户投稿 2025-06-10
  • 29元芝麻卡套餐哪些app免流

    5G网络和5G手机已经推出有一年多的时间了,但是鉴于目前5G网络的建设速度和覆盖面以及5G网络的生态圈来看,4G仍然是目前我们主流使用的网络,5G到目前为止还属于比较早期的项目,在实际应用领域来说,对用户的吸引和帮助并不大。除非现在已经有颠覆式的5G应用出现,或者出现一些只有在5G网络下才能使用的APP,否则对于用户来说,还是愿意守在4G。 用户的心理其实也…

    2023-05-24 用户投稿