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等,使用方法也是大同小异,就不一一全部详细介绍了。

本站部分内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如发现本站有涉嫌抄袭侵权/违法违规等内容,请联系我们举报!一经查实,本站将立刻删除。

(0)

相关推荐

  • 一只眼睛生活困难吗,单眼盲人的苦恼

    网上键入单眼失明这几个字,搜索框里会根据搜索数据自动补充后半句:“单眼失明算残疾吗?”“单眼失明可以考驾照吗?”“单眼失明可以考公务员吗?”“单眼失明可以考教师资格证吗?” 这些搜索,反映的是单眼盲人群体面对的现实难题。《中国青年报》刊发了一篇调查报道《单眼盲人:不算残疾人,也无法成为普通人》,列举了几位单眼盲人的遭遇:比生理上的视野范围受限更麻烦的是,他们…

    用户投稿 2023-07-05
  • 湖南移动流量卡套餐介绍(湖南移动宽带套餐)

    告别炎炎夏日,2020年终于进入了一年中最舒服的秋季,各大学校也迎来了久违的开学季。换季时间买买买太多,快要“月光”啦?新学年伊始,少不了置办新学期物品,刚到手的生活费就快要花完啦?别急,中国移动“宝藏卡”也为 “月光族”、“学生党”们送来一大波福利! 什么是“宝藏卡”? 在信息爆炸的5G千兆时代,我们的生活与手机、互联网越来越密不可分,无论是工作、学习、生…

    2023-05-28
  • 百度空间游戏,百度空间游戏:玩转最新精彩游戏

    央广网北京11月11日消息(总台央广记者白杰戈 张棉棉 张筱璇)天舟五号货运飞船即将择机发射。按计划,天舟五号货运飞船不仅要完成上行物资的使命,还将承担实验支持的职责。上行的物资中包括实验载荷,将在空间失重环境下开展科学实验,对一些前沿的航天关键技术进行验证。而此前发射升空并完成交会对接的问天实验舱和梦天实验舱,也已经相继展开实验或调试工作。未来十年,中国空…

    用户投稿 2023-05-19
  • 雪里蕻腌制,开水烫雪里蕻的腌制方法

    记得小时候在乡下,每天到了秋天,家家户户都会腌咸菜,比如,腌萝卜,腌雪菜,腌芥菜等,各式各样的腌咸菜,那时候,在乡下,到了冬天,除了自家种的白菜,萝卜,基本上全靠咸菜过日子,80后农村长大的孩子应该深有体会的。如今,在这个物质生活都非常富裕的时代,即便是回到农村乡下,人们也不怎么腌咸菜了,顶多也是腌一些尝尝鲜,解解馋,生活在大城市里的人们应该更加不可能去腌这…

    2023-06-24 用户投稿
  • 呼和浩特找查发,呼和浩特劳动监察局

    年终岁尾往往是劳资纠纷高发期 遇到拖欠工资不给怎么办? 下面这些电话记好了 专治欠薪! 呼和浩特市人力资源和社会保障局于12月22日面向社会公布了劳动者合法权益咨询、维权举报电话,方便劳动者及时监察举报,维护权益。 劳动者维护举报电话具体为: 呼和浩特市人民政府清欠办(0471)6956440; 呼和浩特市劳动保障监察支队(0471)5181367; 新城区…

    2023-07-06
  • 交互式多模型算法的理解,交互式分析

    随着自然语言处理(NLP)模型变得越来越强大,并在更现实的环境中进行部署,理解它们的行为变得越来越重要。尽管建模方面的进步为许多NLP任务带来了空前的性能,但仍然存在许多研究问题,这些问题不仅涉及这些模型在领域转移和对抗环境下的行为,还涉及它们根据社会偏见或浅层启发法表现的趋势。   对于任何新模型,人们可能想知道模型在哪种情况下效果不佳,模型为何…

    2023-07-09 用户投稿
  • u盘文件无法删除,u盘资料不小心删除如何找回免费

    U盘作为一个便携式存储设备,越来越多人使用它来存储重要的资料。虽然U盘的数据安全性很高,但是由于各种原因,U盘里的数据有可能会被误删除。这时,许多人会感到手足无措,不知道该怎么办。如果你也遇到了这种情况,不要慌张,下面我们就来讲一讲U盘资料不小心删除后如何找回。 U盘资料丢失通常会有以下几个原因: 1. 误删除:由于在删除文件时的粗心大意,不小心将重要数据删…

    2023-07-04
  • 农产品品牌化(柳城市场和质量监督所)

    1月19日,金华市市场监管局商标广告处处长李振纲、副处长朱骞一行到柳城市场监管所实地调研指导柳城农特产品牌指导站的工作开展情况。 去年以来,县市场监管局聚焦农特产品牌化建设,通过深挖特色、叠加服务、实地指导等举措,在南部山区柳城联盟建立首个农特产品牌指导站,为农业市场主体提供品牌注册、运用、保护等“一站式”服务,切实提高农产品竞争力,为企业提供便捷、高效、近…

    2023-06-01
  • 搜客qq空间克隆 ,网站被别人克隆了怎么办

    恶意克隆也称作恶意镜像,就是网站的数据被别人“拷贝”到本地服务器,并保持本地服务器数据同步更新,当浏览者打开这两个网址却出现一样的内容,这就是恶意克隆。 seo优化 对于刚刚成立并没有什么权重的新站,往往是容易遭到拥有域名年龄优势对手打压,而遭受恶意克隆。 那么遇到网站被恶意克隆该怎么处理呢?广州seo优化公司爱搜客网络优化团队将来为你解答。 第一只种办法就…

    2023-06-04
  • 英雄联盟百宝箱,lol超神盒子封号吗

    LOL这款竞技类网游也火了七年了,最早的时候腾讯还没出TGP的时候有一种非常火爆的辅助叫LOL盒子,LOL盒子功能非常强大,可以无限视距,还可以用自己能看见的各种绝版皮肤,可是好景不长,到了S3赛季的时候被官方叫停,不能使用。 英雄联盟到了S5赛季的时候腾讯强势推出TGP,当腾讯推出TGP后还出了一个公告就是用其他软件登游戏的可能被官网误解被开第三方插件,而…

    2023-07-13 用户投稿
  • 个人创业有什么好项目(有什么小型创业项目)

    由于疫情尚未彻底消除,目前的创业环境相对比较恶劣。在这种情况下,想要创业赚大钱需要更加谨慎,切不可盲目投资,否则一旦创业失败,很可能很多年都翻不过身来。   下面为大家总结十个未来两年适合普通大众的创业项目。虽然这些项目技术含量并不高,但是只要把项目做好,仍然能够赚很多钱。   第一 短视频电商     现在是短视频十分火爆的时代,各大短视频平台吸…

    2021-10-29 用户投稿