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)

相关推荐

  • 淘抢购入口,淘抢购在哪里进入

    《淘抢购入口:揭开神秘面纱,探寻购物捷径》 在如今的电商时代,淘抢购无疑是一个备受瞩目的存在。 它以其丰富的商品种类、超低的价格和限时抢购的模式,吸引了无数消费者的目光。 然而,对于许多人来说,淘抢购入口却仿佛是一个神秘的存在,让人摸不着头脑。 那么,淘抢购入口究竟在哪里呢?它又有哪些特点和优势呢?今天,我们就一起来揭开淘抢购入口的神秘面纱,探寻这个购物捷径…

    2025-06-03
  • 游戏代理如何做?四大运营流程了解一下

    手机游戏已成为这个时代许多人的必需品。只需一部手机即可立即打开游戏,随时随地享受手机游戏的乐趣。 说到手机游戏代理项目,可以说是一种投资轻、产量高的行业,创业风险小。与其他特许经营权不同,手机游戏代理行业只需提前投入时间、精力和耐心,就可以获得更好的回报。 那么,手游代理具体该如何去做?四大运营流程了解一下! 一、吸引用户进群 做好游戏代理的第一步是吸引足够…

    2022-06-01
  • 纯流量卡苹果(纯流量卡苹果手机能开个人热点吗)

    Ultra Mobile PayGo介绍 2019年8月中旬,T-Mobile把PayGo业务转让给了Ultra Mobile,因此T-Mobile的$3/月的PayGo套餐已经绝版目前在T-Mobile官网激活PayGo套餐会自动跳转至Ultra Mobile的PayGo套餐激活页面 Ultra Mobile PayGo优势 1.月租低廉,且为实体号码适合…

    2023-05-27 用户投稿
  • 笛福是哪个国家的

    ◎圆首的秘书 最近,诺贝尔文学奖获得者、土耳其作家奥尔罕·帕慕克的新作《瘟疫之夜》(Veba Geceleri)中文版终于面世。作为一部长达40万字的作品,《瘟疫之夜》可能会吓退一些读者,但无论是文学价值还是历史意义,该书都是一部不会让人失望的作品。为这本书准备了40年之久的帕慕克不仅有着惊人的文学想象力,还足够慷慨和细心,似乎早就想好了要给予那些冲破瘟疫毒…

    2023-05-31
  • 青骄课堂第二课堂学生登录,如何登录青骄课堂第二课堂学生账号

    青骄第二课堂在线登录平台入口在哪?目前很多家长和学生不知道,下面小编就为大家分享青骄第二课堂官网进入学习禁毒知识入口地址。 PS:大家需要注意的是,网上有很多的虚假的青骄第二课堂登录平台,大家要认准下面的登录地址哦! 青骄第二课堂平台登录入口 青骄第二课堂官网登录地址:https://www.2-class.com/ 登录青骄第二课堂方法 首先点击上面的链接…

    2023-05-14
  • hpbios设置,惠普台式机预装win10版本

    有网友反馈之前购买的电脑是win10系统,想要换成win7系统用,就是操作不成功,不知道该怎么办?以惠普(HP)台式机电脑为例,出厂预装win10系统,然而自己习惯了win7系统,不知道怎么办,请阅读以下方法可能对你有所帮助。 之前说过一篇关于新主板6代以上cpu,特别是8代以上cup装win7系统教程,原理都一样(新机型采用UEFI模式,这就要修改主板BI…

    2023-07-11 用户投稿
  • 骨髓瘤症状,骨髓没问题的淋巴瘤的概率

    指导专家/南方医科大学南方医院血液内科淋巴瘤亚专科负责人 主任医师 冯茹 金羊网讯 记者王楠 通讯员李晓姗报道:身体出现不明原因的症状,当心是淋巴瘤、骨髓瘤惹的祸。 淋巴瘤是起源于人类免疫系统细胞及其前体细胞的恶性肿瘤。而多发性骨髓瘤是起源于骨髓浆细胞的恶性肿瘤,是发病率仅次于淋巴瘤的血液系统最常见的恶性肿瘤之一。专家表示,随着医疗技术的进步,淋巴瘤、骨髓瘤…

    2023-07-04
  • 类似lol的游戏,电子竞技文推荐

    本期分享4本电子竞技类游戏文,各种爽点与梗都融合得很自然,值得收藏 一、《灵笼:休闲玩家有什么坏心眼》 作者:果味喵 短评:以灵笼世界观为蓝本的虚拟网游文,背景为废土重建,竞技+网游,还有十分丰富的世界剧情,细节与情感处理得挺赞的。温润腹黑又有风度的高智商猪脚,在网游文中真的少见。退役战神回到家发现妹妹……主角算是第一公会会长付出大代价推的副本神器被讨厌主角…

    2023-07-05 用户投稿
  • 龙华三和人才市场最新招聘信息 有什么关于龙华三和人才市场的招聘信息

    三和人才市场位于龙华区东环一路景乐市场,曾经很多90后在这里迷失自我,宁愿做日结,也不愿进工厂上正常班。听说当时一张身份证可以买80块钱,这里有廉价的网吧,5元一份的挂壁面,那时的大神活在自己的世界里,日子过得逍遥自在。 网友二:三和这个地方最熟悉不过了,他们物质方面一点不富有,但是精神上比那些房贷车贷压得喘不过气的人来说已经好很多了,要给予他们多点包容,谁…

    2023-06-07
  • 柳公权的故事(柳公权的故事阅读答案)

    【题记:本文系作者系列文章「读通鉴讲故事」“家教篇”中的一篇】 常言道:家有家规,国有国法。可是,我国古代有一家的家规,却被后人称作“家法”。这姓人家便是唐代柳公绰、柳公权兄弟所在的柳氏家族。本文不对“柳氏家法”作系统推介,而以人物为中心,介绍开创柳氏家风的几位关键性人物,在修身齐家方面的故事。 □柳公绰:讲规矩到极致,开一代家风 柳公绰(768-832),…

    2023-05-28 用户投稿
  • 触摸板驱动,触摸板驱动如何安装

      液晶显示器驱动板几种常见故障的检修 现象:电源板输出电压正常,但是按开关没反应: 从先易后难的顺序着手检查 目测板子有无元件异常,通电用手触摸板子各处,看有无温度异常,有时处理芯片坏了温度很高,一摸就发现了 然后我习惯先检查驱动板上的各个供电。 由于电源板输出通常只有12v和5v,所以驱动板上都有几个DC/DC稳压器来转换驱动板所需的电压。 (…

    2023-07-12 用户投稿
  • 李冰冰任泉晒旧照为母校庆生

    3月4日零点,李冰冰踩点晒照发文为好友任泉庆祝50岁生日,她祝福道:开心快乐哦,任先生要记得哦! 任泉一大早留言回复:手动比心,感恩!还送上了飞吻。 看到李冰冰为任泉庆生,网友留言喊话:你们结婚吧,给青春一个结局!老在网上玩暧昧有啥劲儿,来点实际的吧。 任泉还去读了EMBA(高级管理人员工商管理硕士),之所以去攻读这个,是因为他认为自己以前投资都是凭感觉,不…

    2023-06-03 用户投稿