做网站页面一般用什么软件,php网页制作代码,wordpress supercache,百度seo效果目录
一、JSONObject
1.1、为什么要使用他#xff1f;
1.2、应用
1.2.1、依赖
1.2.2、JSON 数据示例
1.2.3、JSON 数据的构建
1.2.4、JSON 数据的解析 一、JSONObject 1.1、为什么要使用他#xff1f;
在还没有接触过这个东西的时候#xff0c;一直是通过 ObjectMap…目录
一、JSONObject
1.1、为什么要使用他
1.2、应用
1.2.1、依赖
1.2.2、JSON 数据示例
1.2.3、JSON 数据的构建
1.2.4、JSON 数据的解析 一、JSONObject 1.1、为什么要使用他
在还没有接触过这个东西的时候一直是通过 ObjectMapper 进行 JSON 的序列化和反序列化尤其是将 JSON 数据进行解析还需要提供一个具体的类... 就算不提供具体的类使用 JsonNode 读取数据涉及到修改还要强转 ObjectNode 就很麻烦~
而且如果要构造一个 JSON 格式的数据可能最先想到的就是通过 HashMap 但是一但要构造的 JSON 数据稍微复杂一点就要嵌套不少代码的简洁、可读性大大降低.
然而在实习的时候作为后端开发有需要和这些数据常常打交道所以就学到了一种处理 JSON 数据的神器——JSONObject
接下俩我们直接通过实战来看看为什么是神器~
1.2、应用
1.2.1、依赖 dependencygroupIdorg.json/groupIdartifactIdjson/artifactIdversion20210307/version !-- 使用适当的版本号 --/dependency所在包import org.json.JSONObject; 1.2.2、JSON 数据示例
例如有如下 JSON 数据 private static final String msg {file: {user: {name: cyk,age: 20,likes: [弹钢琴, 敲代码, 唱歌, 亲亲]},admin: {name: lyj}}};Pslikes 这里是一个 JSON 数组因此需要通过 JSONArray 来构造. 1.2.3、JSON 数据的构建
a主要方法就是 put()返回值是一个 JSONObject参数可以如下 b解读 JSONObject 对象就像是一个容器实际上底层也是 Map可以简单的想象成一对大括号 { }这个对象有 put 方法方法的参数就是一个键值对返回值就是 JSONObject 本身. 实际上 put 就是往这对大括号里面装东西. 如果 key 存在就覆盖key 不存在就添加.
理解上述就不难构造啦~ //1.构建最外层大括号JSONObject parent new JSONObject();//2.key 就是 file, value 又是一个大的 json 数据(可以简单理解为一对大括号算一个 JSON 数据)JSONObject fileJO new JSONObject();//3.再往里有两个 key分别是 user 和 admin, value 又是 json 数据JSONObject userJO new JSONObject();JSONObject adminJO new JSONObject();//4.注意 user 中有一个 json 数组JSONArray array new JSONArray();//5.接下来就是简单的赋值啦array.put(弹钢琴);array.put(敲代码);array.put(唱歌);array.put(和女朋友玩游戏);userJO.put(name, cyk);userJO.put(age, 20);userJO.put(likes, array);adminJO.put(name, lyj);fileJO.put(user, userJO);fileJO.put(admin, adminJO);parent.put(file, fileJO);当你把 JSONObject 就想象成一个大括号每次 put 就是在往里面放元素就会发现也可以写出如下优雅的代码~ JSONObject parent new JSONObject().put(file,new JSONObject().put(user, new JSONObject().put(name, cyk).put(age, 20).put(likes, new JSONArray().put(弹钢琴).put(敲代码).put(唱歌).put(和女朋友玩游戏))).put(admin, new JSONObject().put(name, lyj)));c输出如下 1.2.4、JSON 数据的解析
a主要方法如下
get() 参数就是 json 中的 key是 String 类型 返回值就是 key 对应的 value返回值是 Object.getJSONObject()参数是 json 中的 key是 String类型返回值 key 对应的 value类型是 JSONObject.getJSONArray()参数是 json 中的 key 是 String 类型返回值是 key 对应 json 数组类型是 JSONArray.
b解读上述三个方法都可以理解为每次 get 实际上都是将 key{} 和 value 之间 的一次剥离使你拿到对应的 value只是返回值类型不同而已. //1.将 json 数据放入 parent 中JSONObject parent new JSONObject(msg); //这里也可以放 map//这里列举几种情况//a) 获取 file 的 value 值JSONObject file parent.getJSONObject(file);//这里不建议直接用 get (强转 toString() 会有奇怪的报错)因为获取到的值实际上还是一个 JSON 格式数据System.out.println(file.toString());//b) 获取 user 下的 name 对应的 value 值String name (String) parent.getJSONObject(file) //返回的是 JSONObject 对象因此还可以继续往里读取.getJSONObject(user).get(name); //这里就不能再使用 getJSONObject 获取 JSONObject 都对象了因为 name 后面没有大括号可以解析了System.out.println(name: name);//c) 获取 user 下的 likes 数组String likes String.valueOf(parent.getJSONObject(file).getJSONObject(user).getJSONArray(likes)); // 注意这里是一个 JSONArray 数组System.out.println(likes: likes);c输出如下