Java 解析多层嵌套json数据及json字符串与对象的相互转换

这篇具有很好参考价值的文章主要介绍了Java 解析多层嵌套json数据及json字符串与对象的相互转换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

本文主要介绍java解析多层嵌套json数据以及字符串与JSON对象之间的相互转换,包括:json字符串的取值,json对象与字符串的相互转换,字符串转化为java对象,字符串转化为javaList列表等。


提示:以下是本篇文章正文内容,下面案例可供参考

一、基本语法

1.格式要求

  • 数据格式:JSON实际上就是键值对(“key” : “value”)
  • 数据要求:key必须是字符串,value可以是字符串、数字、对象、数组、布尔值或null

2.value的取值语法

  • 字符串,jsonObject.getString(“key”)
  • 数字,jsonObject.getIntValue(“key”) 或者 jsonObject.getInteger(“key”) 与之对应的数据类型
  • 布尔值,jsonObject.getBooleanValue(“key”)
  • 数组,jsonObject.getJSONArray(“key”)
  • Object 对象,jsonObject.get(“key”)
  • JSONObject 对象,jsonObject.getJSONObject(“key”)

3.JSON对象与字符串相互转换

  • 用的是fastjson解析,pom文件
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>2.0.0</version>
</dependency>
  • Object对象转Json字符串:JSON.toJSONString(Object object);
JSONObject jsonObject = buildJSONObject(); // 构造的json对象
String jsonString = JSON.toJSONString(jsonObject);
  • Json字符串转Object对象:JSON.parseObject(String str);
JSONObject jsonObject = buildJSONObject(); // 构造的json对象
String jsonString = JSON.toJSONString(jsonObject);
JSONObject jsonObject1 = JSON.parseObject(jsonString);
  • 将字符串转为JSONArray:JSON.parseArray(arrayStr);
String arrayStr = "......";
JSONArray array = JSON.parseArray(arrayStr);
  • 将字符串转为具体的单个java对象:JSON.parseObject(String text, Class clazz);
String userString = "{\"name\":\"libai\"}";
User user1 = JSON.parseObject(userString, User.class);
// 或者
User user2 = JSON.parseObject(userString).toJavaObject(User.class);
// 再或者使用JSONObject替换JSON也可,即JSONObject.parseObject(userString, User.class);
@Data
static class User {
    private String name;
}
  • 将字符串转为具体的java List列表:JSONObject.parseArray(“字符串”).toJavaList(User.class);
String userListString = "[{\"name\":\"1\"},{\"name\":\"12\"}]";
List<User> userList = JSONObject.parseArray(userListString).toJavaList(User.class);

二、取值示例

1.构造数据

构造如下数据,有字符串、数组、对象等
java 多层json递归解析,Java,java,json

private static JSONObject buildJSONObject() {
    // 构造JSONObject对象
    JSONObject jsonObject = new JSONObject();
    // value为字符串及数字
    jsonObject.put("name", "website");
    jsonObject.put("age", 18);

    // 构造JSONArray对象
    JSONArray jsonArray = new JSONArray();
    // JSONArray里面有JSONObject对象
    JSONObject jsonArrayObject1 = new JSONObject();
    jsonArrayObject1.put("name", "alibaba");
    jsonArrayObject1.put("info", "www.alibaba.com");
    JSONObject jsonArrayObject2 = new JSONObject();
    jsonArrayObject2.put("name", "baidu");
    jsonArrayObject2.put("info", "www.baidu.com");
    jsonArray.add(jsonArrayObject1);
    jsonArray.add(jsonArrayObject2);
	// value为JSONArray对象
    jsonObject.put("sites",jsonArray);

    JSONObject jsonObject2 = new JSONObject();
    jsonObject2.put("name", "blog.csdn.net");
	// value为JSONObject对象
    jsonObject.put("site", jsonObject2);
    return jsonObject;
}

2.读取数据

  • 取出 website 字符串及 18 数字
System.out.println(jsonObject.get("name"));			// 直接get返回的是Object对象
System.out.println(jsonObject.getString("name"));	// getString返回的是字符串
System.out.println(jsonObject.getIntValue("age"));  // getIntValue返回的是int类型
  • 取出 blog.csdn.net,即对象里面的字符串
// 直接getJSONObject获取到site的对象,再getString获取name的值
System.out.println(jsonObject.getJSONObject("site").getString("name"));	
  • 取出 alibaba,即数组里第一个对象里面的字符串
// getJSONArray获取sites的数组,再getJSONObject(0)获取数组中第一个对象,再getString获取name值
System.out.println(jsonObject.getJSONArray("sites").getJSONObject(0).getString("name"));

总结

人生没有完满,始终存在残缺,自己的心地是自己的世界,活得不快乐,本质上源于自己的无能。一个人,应该有力量,将自己从一切沉重的、老旧的、无精打采的事物里拔出来,用不断的尝试、变通改变自己的境遇。

java 多层json递归解析,Java,java,json文章来源地址https://www.toymoban.com/news/detail-765964.html

到了这里,关于Java 解析多层嵌套json数据及json字符串与对象的相互转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • mysql 解析json字符串、数组字符串、json数组字符串

    mysql 解析json字符串、数组字符串、json数组字符串

    笔者使用mysql 5.7进行了一次json字符串的解析,因为一直在搞大数据相关的数据库、olap等,太久没有用mysql5.x的版本,一些函数已经不知道支不支持,我的同事建议我使用like、rlike模糊匹配的方式,身为数据人我不太喜欢用这种手段,因为他们比较低效。于是我想这里总结一下

    2024年02月16日
    浏览(11)
  • 实体类中嵌套Enum类型并想转换成JSON字符串时遇到的问题。

    先说明问题的产生,在自己写着玩的时候,新建了一个 User 类如下: 不难看出User类中,用到了枚举类把性别规定成了两个。 下面是SexEnum类: 这里,当我想通过工具类将其转换成json字符串并且让枚举中的 值能返回对应的文字时,出现了问题。返回的值是枚举类的 属性名 而

    2024年02月08日
    浏览(6)
  • java将json字符串数据转换为List对象

    方法一:使用Jackson库 pom.xml文件中添加以下依赖: 转换之后直接可以用list操作了 方法二:使用Gson库 res: json格式的数据 方法二比方法一使用起来更简便一点

    2024年02月21日
    浏览(10)
  • Oracle解析JSON字符串

    Oracle解析JSON字符串

    假设某个字段存储的JSON字符串,我们不想查出来后通过一些常见的编程语言处理( JSON.parse() 或者是 JSONObject.parseObject() 等),想直接在数据库上处理,又该如何书写呢? 其实在 ORACLE 中也支持多种机制去处理JSON数据,例如有操作函数JSON_ARRAY、JSON_EXISTS、JSON_VALUES、JSON_TABLE、

    2024年02月16日
    浏览(8)
  • 7. Hive解析JSON字符串、JSON数组

    Hive解析JSON字符串 1. get_json_object 语法: get_json_object(json_string, path) json_string 是要解析的JSON字符串 path 是用于指定要提取的字段路径的字符串 局限性 get_json_object 函数的性能会受到 JSON数据的结构和大小 的影响。对于较复杂的嵌套结构,考虑使用Hive的其他函数或自定义函数来

    2024年02月11日
    浏览(7)
  • 一个退役中校教你如何用go语言写一个基于B+树的json数据库(进阶篇)之json字符串解析为BsTr结构(一)

    1.对象式json字符串 s := \\\"{\\\"put\\\":{\\\"putjsontest\\\":{\\\"aaa\\\":\\\"sdftsdfs\\\\dfe29asdf\\\",\\\"aaab\\\":true,\\\"arrarrstrct\\\":{\\\"nnn\\\":-1234567890,\\\"ccc\\\":[[\\\"sdftsdfs\\\\dfe29asdf\\\",\\\"nmbndfvdfgfdg\\\"],[\\\"sdftsdfs\\\\dfe29asdf\\\",\\\"poiuiyyttt\\\"]]},\\\"ddd\\\":\\\"sdftsdfs\\\\dfe29asdf\\\",\\\"fff\\\":false,\\\"comboolarr\\\":[{\\\"boolarr0\\\":[true,false]},{\\\"boolarr1\\\":[true,false]}]}

    2024年02月21日
    浏览(6)
  • C#2010 .NET4 解析 json 字符串

    C#2010 .NET4 解析 json 字符串

    下载Newtonsoft.Json.dll  

    2024年02月11日
    浏览(6)
  • Golang校验字符串是否JSON格式方法json.Valid源码解析

    上篇文章《Golang中如何校验字符串是否为JSON格式?》主要讲解了使用json.Valid校验字符串是否JSON格式的使用方法,本文来剖析一下json.Valid方法的源码。 json.Valid方法定义: scan := newScanner() 获取一个 scanner 类型的对象,关键的是checkValid方法,checkValid源码如下: 首先调用了sc

    2023年04月26日
    浏览(4)
  • Java中如何将字符串转换为JSON格式字符串

    Java中如何将字符串转换为JSON格式字符串 在Java编程中,我们经常需要处理JSON数据格式。有时候,我们需要将一个普通的字符串转换为JSON格式的字符串。幸运的是,Java提供了多种方法来实现这个目标。在本文中,我将介绍两种常见的方法来将字符串转换为JSON格式字符串。 方

    2024年02月06日
    浏览(9)
  • 【微信小程序】使用 JSON.parse 方法将返回的 JSON 字符串解析为对象

    在微信小程序中,你可以使用 JSON.parse 方法将返回的 JSON 字符串解析为对象。以下是实现类似功能的示例代码: 在上述代码中,我们使用 JSON.parse 方法将返回的 JSON 字符串解析为对象。然后,我们可以通过点语法或方括号语法访问解析后的对象的属性,例如 data.result 。 请注

    2024年02月15日
    浏览(4)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包