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)

相关推荐

  • 大话水浒神骑 为什么林冲被称为豹子头

    林冲的绰号是“豹子头”,这个绰号又是什么意思呢? 林冲是模仿张飞写的,而张飞豹头环眼,燕颔虎须,像豹子的头一样,林冲的相貌和他很像,所以有了“豹子头”的绰号。这一点,林冲出场时,作者也说了。 那官人生的豹头环眼,燕颔虎须,八尺长短身材,三十四五年纪,口里道:“这个师父,端的非凡,使的好器械!” 林冲真的是个能忍的人吗?并不是,其实他也是个脾气暴躁的人。这一点…

    2023-06-05
  • 移动卡申请流量包(移动申请流量包怎么操作)

    来源:【四川日报-川观新闻】 川观新闻记者 刘春华 追剧、冲浪、游戏,刷短视频、视频聊天……农民工朋友们是否担心春节期间流量不够用?别着急,四川省农民工工作领导小组来送福利了。 四川省农民工服务中心工作人员介绍,为贯彻落实省委、省政府关于加强农民工服务保障工作要求,为农民工在春节期间丰富多样的网络文化生活提供流量支持,省农民工工作领导小组办公室会同人力资源社…

    2023-06-02
  • 五虎上将大战曹贼,曹魏五虎上将之死是哪一集

    文:安静的风 读史特约作家张辽,五虎上将之首。 有的人一战成功,有的人一战成名。张辽属于后者。合肥一战,率八百士大战孙权十万大军,一战名扬天下。魏文帝曹丕称之为“古之召虎”。张辽字文远,雁门马邑县人。张辽本不姓张,原姓聂,因避祸怨离开家乡,改姓张。张辽十几岁时就做过县吏,聪明伶俐,很受上司喜爱。成年后进长安,初随丁原,后随何进,何进被杀后归董卓,董卓被杀后归…

    2023-07-07 用户投稿
  • 欧盟英文缩写(欧盟英文缩写和总部所在地)

    【文/观察者网 刘骞】 乌克兰外交部近日在社交媒体推特上发布一则宣传短片,其中称乌克兰早在公元988年决定要加入欧盟。这一论述引发诸多吐槽,“今日俄罗斯”(RT)16日在报道此事时指出,基辅的短片等于在说“乌克兰在欧盟成立前1000年就决定加入欧盟”。 不少网民表示,公元988年哪来的欧盟?乌克兰外交部这么说就是为了眼前的利益改写历史。 乌克兰外交部推特截图…

    2023-05-30
  • 家乐福购物卡面值(家乐福购物卡哪里可以回收)

    相信许多小伙伴们都去过家乐福超市购物,在购物之后结算的时候或多或少都会看到有人使用购物卡结算,直接刷卡就可以完成结算,但是家乐福购物卡有一个局限性,家乐福购物卡只能在家乐福超市内使用,而且家乐福购物卡有些是全国通用,有些是有地区限制的地区卡,也就是说只能在某一个城市的家乐福超市内使用,在这种情况下一些小伙伴们就想着把家乐福购物卡回收,那么家乐福或者家乐福地区…

    2023-06-13 用户投稿
  • 狗的品种图片(犬中之王是什么犬)

    ▲你见过后腿站立,高度超过2.1米的狗吗? ▲你知道“犬中之王”是哪种犬吗? 巨型犬 如果可以,你想要养什么样类型的狗呢?有的人喜欢体型较小的可爱小狗。相反,有些人喜欢体系较大霸气的狗。而且是越大越好。 今天小科普给大家带来,世界上7种体型异常巨大的犬类。 ▲NO.7 高加索牧羊犬 大家是不是听说过这个品种的狗?它们是强有力的运动型犬,而且护主能力是非常强的…

    2023-06-11
  • 网络答题赚钱(网上答题挣钱怎么做)

    玩头条很久了,粉丝依然没有过百(太难了[流泪]),只能每天寂寞地刷金币。 今天无意中发现一个答题赚金币的图标,点进去看了一下,里面好多问题,有我知道的也有我不知道的,我从中选了几个我知道的问题试着回答,没过多久居然有金币到账,我回答了五道题,到账12000金币,这可比我刷的容易多了。 然后我研究了一下答题规则,感觉门槛并不高,只要是你基本知道答案的问题,把答…

    2022-05-06 用户投稿
  • 拼多多800元提现技巧,拼多多800元提现教程

    《拼多多800元提现技巧:探索与实践》 在如今的互联网时代,拼多多作为一款热门的电商平台,其800元提现活动无疑吸引了众多用户的关注。 然而,要成功提现800元并非易事,其中或许隐藏着一些不为人知的技巧。 本文将深入探讨拼多多800元提现技巧,带你一起揭开这背后的神秘面纱。 一、了解提现规则 在开始探索提现技巧之前,我们首先需要了解拼多多的提现规则。 一般来…

    2025-04-05
  • 网站制作哪家便宜,哪家好网站设计制作

    在当今数字化时代,网站已成为企业和个人展示形象、传递信息的重要平台。然而,对于许多需要制作网站的人来说,选择哪家网站制作公司既便宜又能满足需求,可能是一个令人头疼的问题。本文将探讨网站制作的价格因素、不同类型的网站制作公司以及如何选择性价比高的网站制作服务。 一、网站制作的价格因素 设计复杂度简单的静态网站,通常只包含基本的页面布局和文字内容,价格相对较低。…

    2025-08-21
  • dedecms自动采集,自动采集cms影视

    《关于dedecms自动采集的深入探讨》 一、dedecms自动采集的概念及原理 dedecms自动采集可能是一种通过程序设定,让网站自动从其他网站获取信息并添加到自身平台的技术。我觉得它就像是一个勤劳的小蜜蜂,在互联网的花海中穿梭,不断地采集着花粉(信息)。 其原理也许是利用特定的抓取规则,对目标网站的页面进行分析和筛选,提取出符合要求的内容,然后按照一定…

    2025-08-21
  • 母乳皂,怎样用母乳制作婴儿皂

    我们大部分妈妈采用母乳喂养,有时候母乳太多,宝宝吃不完,但又不想浪费,于是我们准备利用母乳制作手工皂,充分利用每一滴母乳,给宝宝一份健康呵护的爱。   2021年12月19日下午,我们跟宝爸宝妈一起制作母乳皂   母乳皂天温和滋养、可用于宝宝日常洗涤 当成品出来时,每个人脸上都挂满了笑容,能为宝宝制作这样一份礼物,是非常有纪念意义的。 &…

    2023-07-08
  • 女士祛痘,女士祛痘洗面奶哪个牌子好用

    祛痘一直都是一个热门话题,不管什么时候,只要到了夏天皮肤出油的季节。痘痘总是困扰着女生,尤其是25岁左右已经过了青春期,皮肤的自我修复能力也处在下降阶段。脸上的痘痘总是反复长,而且很难根治。 往常说起祛痘产品都是一些精华类,可以直接抹在脸上当护肤品一样用,但是效果却并不明显。而今年流行的“新式”祛痘精华,先不看效果,单看它的使用方式就已经让我们产生浓厚的兴趣…

    2023-07-05 用户投稿