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)

相关推荐

  • 红米note特别版 什么是红米Note特别版

    红米Note12系列的Pro,Pro 以及探索版搭载的都是天玑1080处理器,这是联发科最新发布的中低端SOC,是天玑900(天玑920)系列的迭代芯片。 这款芯片的详细参数如下: 台积电6nm工艺(和天玑900保持一致),8核心设计,分为两颗Cortex A78 2.6Ghz大核心以及六枚2.0Ghz的Cortex A55小核心,GPU依旧采用了Mali-…

    2023-06-03
  • 绿联蓝牙耳机评测,绿联蓝牙音质

    那有没有可能,把这种影院级别的音效体验带出影院,带到我们身边呢? 绿联最新推出的「绿联 HiTune Max3 头戴式蓝牙耳机」。 静享陶醉,如影随形戴上绿联头戴式耳机,即刻进入音乐世界。 它融合了全场景的空间音频技术、主动降噪技术、蚕丝复合振膜大师音质。 让声音环绕耳边,有如电影院般身临其境,一戴即沉浸,听歌体验全新升级!全场景式空间音频绿联头戴式耳机通过…

    2023-07-02 用户投稿
  • 如何处理情人的东西比老公大的情况

    夫妻一方出轨,还给情人转账汇款另一方有权将这些钱要回吗? 扬州周某在夫妻关系存续期间,与女子鲁某相识,双方发生婚外情并生育了一个孩子。2016年至2020年期间,周某在妻子姚某不知情的情况下,向鲁某前前后后共转账45万余元。2021年,周某还汇款28万多元至某房地产公司,为鲁某缴付房屋首付款。妻子姚某发现后,起诉到法院,要求确认周某对鲁某的赠予无效,返还70…

    2023-06-02
  • 三维弹球,最小的弹珠有多少度有多少

    陪你边玩边学,每天涨点新知识本期《狂丸看片》要为你推荐的是一档日本儿童教育栏目:Pythagora Switch——《毕达哥拉斯装置》系列。 栏目老少咸宜,20岁的精神小伙们也看的津津有味:   这是因为节目里的一种「连锁反应装置」玩法,实在太有趣了。 这种装置和栏目同名,也是栏目的标志性环节,经常出现在开头和结尾,它会像多米诺骨牌一样,由一个点触…

    2023-07-10 用户投稿
  • 男生对你起了生理反应的眼神(男生对你起了生理反应的眼神清冽)

    爱情的本能是什么?大概就是爱到真切时,是无法隐藏的。即使嘴上不说,只要两个人一靠近,就会伴随着爱情荷尔蒙的分泌,引起一系列的生理反应。 每个人对于爱情的定义都不一样,有些人认为爱情需要顺其自然,不必强求;有的人则认为爱情需要通过努力争取,方才不会错过。但真正相爱的两个人,靠的是生理吸引才能走到一起。 彼此之间如果没有一点心动的感觉,是很难长久的。特别是一种生…

    2023-05-31 用户投稿
  • 毫安时是什么单位(毫安时是什么单位,可以大写吗)

    讲了这么多期的电池,大家对锂电池有没有更熟悉些了呢?小蒲目前都还是围绕着电芯在讲,因为电芯是电池中最核心的部分,也是发挥着主要作用。锂离子二次充电电池的组成是这样的:电芯+保护电路板。充电电池去除保护电路板就是电芯了。他是充电电池中的蓄电部分。电芯的质量直接决定了充电电池的质量。电芯分为铝壳电芯、软包电芯(又称“聚合物电芯”)、圆柱电芯三种。这些都是在之前内…

    2023-05-30
  • 交际花的含义及其重要性

    1895年,王赓出生在无锡,他祖上世代为官极尽显贵。到他父亲那一代家道中落。王赓十分有骨气和志向,从小立志要以个人的功业重建家族的荣誉。16岁毕业于清华,后来赴美去密歇根大学、哥伦比亚大学学习,就获得了普林斯顿大学的文学学士学位,后来考入西点军校。 毕业回国后的第二年,王赓就被北洋政府外交总长顾维钧选中,以上下武官的身份,共同出席巴黎和会,时年23岁。会议期…

    2023-05-23
  • 绍兴最近的周边萤火虫观赏地方,什么时候是湘湖萤火虫的最佳观赏季节

    几十年前,在父辈的记忆中,在乡下的树林中还能见到成片的萤火虫,六七十岁的人还能记得,那时的夏日夜晚,萤火虫在草丛里点点飞舞的奇幻美景。随着城市的超快速发展,那些晶亮的萤光,早已被霓虹所取代。虽然萤火虫变得稀少,但依旧顽强的繁衍生存着。 最绍兴小编来盘点一下距离绍兴最近的周边萤火虫观赏地,感叹“此景只应天上有”吧! 盛夏时节,清晨观野鸟,听鸟鸣,夜观天象,捉萤…

    2023-06-15 用户投稿
  • 好时巧克力官网,好时巧克力保质期一般是多久

    《好时巧克力官网:探索巧克力的甜蜜世界》 一、好时巧克力官网的重要性 好时巧克力作为全球知名的巧克力品牌,其官网无疑是品牌形象展示和产品推广的重要阵地。 它就像是好时巧克力的一扇大门,打开这扇门,我们就能进入到一个充满甜蜜和诱惑的世界。 (我觉得)官网可能会展示好时巧克力的各种产品系列,包括经典的牛奶巧克力、浓郁的黑巧克力、美味的果仁巧克力等等,让消费者能够…

    2025-03-31
  • 美年达兑奖网站,百事可乐瓶盖活动

    说出来你可能不信,一个普普通通的百事可乐瓶盖,居然能引发一个国家大动乱? 1992年,百事可乐公司在智利、墨西哥、阿根廷和菲律宾开启了一场声势浩大的揭盖有奖活动。 在菲律宾,只要消费者购买百事可乐、激浪、美年达和七喜这四款产品,就能得到一个带有三位数字的瓶盖,这个数字是介于001-999中的任意一个。 不过,当消费者拿到号码之后,他们还不能立马确定自己是否中…

    2023-05-29 用户投稿
  • 如何加入工作组,中国首次对接

    中新社北京6月1日电 (记者 李晓喻)中国商务部新闻发言人束珏婷1日称,中国国内多个地方都在主动对接《数字经济伙伴关系协定》(DEPA),与成员方一道探索各领域合作,一些项目已取得积极进展。 6月1日,中国商务部举行例行新闻发布会。新闻发言人束珏婷称,中国国内多个地方都在主动对接《数字经济伙伴关系协定》(DEPA),与成员方一道探索各领域合作,一些项目已取得…

    2023-07-11
  • gridview删除,gridview删除一行

    以下是一篇关于“gridview删除”的文章: 一、gridview的基本概念与特点 Gridview可能是一种在软件开发中常用的用户界面组件,它好像是类似于一个表格的展示区域,能够以网格的形式呈现数据。我觉得它的特点之一是可以方便地展示大量的数据,并且能够通过行和列的方式进行组织和排列。也许它在一些数据管理系统或者报表生成的场景中使用得比较广泛,能够让用户…

    2025-11-07