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

您所在的位置:网站首页 java如何定义对象数组中的数据 Java 解析多层嵌套json数据及json字符串与对象的相互转换

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

2024-07-05 09:43| 来源: 网络整理| 查看: 265

文章目录 前言一、基本语法1.格式要求2.value的取值语法3.JSON对象与字符串相互转换 二、取值示例1.构造数据2.读取数据 总结

前言

本文主要介绍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文件 com.alibaba fastjson 2.0.0 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 userList = JSONObject.parseArray(userListString).toJavaList(User.class); 二、取值示例 1.构造数据

构造如下数据,有字符串、数组、对象等 在这里插入图片描述

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")); 总结

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

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3