解析多层嵌套json模板的JsonUtil类

2023-12-25 04:18

本文主要是介绍解析多层嵌套json模板的JsonUtil类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

公司让开发一个解析现有模板的的json类。
  json模板是这样样子的多层嵌套json对象,本来要解决jsonObect和jsonArray两种类型的对象,但是仔细核对过后发现,在业务中并没有使用到jsonArray这种类型的对象。所以我先做了解析多层嵌套JsonObject的JsonObject对象。
  先开看一下我们要使用到的Json模版

	{"一班":{"座位2":{"studentAge":13,"studentName":"李四"},"座位1":{"studentAge":12,"studentName":"张三"}},"二班":{"座位3":{"studentAge":14,"studentName":"王五"},"座位4":{"studentAge":15,"studentName":"赵六"}}
}

那么这里我使用的嵌套是两层嵌套 第一级是班,第二级是座位但是在实际生产过程中,并不知道有多少级Json嵌套。那么就需要自动的来确定Json嵌套的层数。先来看我的Util类吧。

package com.kx.www;import java.util.ArrayList;
import java.util.List;
import java.util.Map;import com.alibaba.fastjson.JSONObject;public class JsonUtils {private String jsonMode="";/*** 单个key 修改 json模版 * @param jsonMode*            jsonString模板* @param key*            传入XX.XX.XX.AA(标识要修改那个字段)* @param value*            json模版 String 字符串* @return* 			  json模版 String 字符串  如果key值在模版中有那么返回修改后的模版,如果key在模版中没有那么返回传入的模版*/public String PutNewValue(String jsonMode, String key, String value) {JSONObject jsonObject = JSONObject.parseObject(jsonMode);// 把接收到的json格式的字符串模板转换为json对象// 切分 遍历key 拿出前面节点 和最后一个key值String[] keys = key.split("\\.");List<JSONObject> list = new ArrayList<JSONObject>();list.add(jsonObject);for (int i = 0; i < keys.length - 1; i++) {try {jsonObject = jsonObject.getJSONObject(keys[i]);} catch (Exception e) {return jsonMode;}list.add(jsonObject);}jsonObject.put(keys[keys.length - 1], value);for (int i = keys.length - 2; i >= 0; i--) {list

这篇关于解析多层嵌套json模板的JsonUtil类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/534243

相关文章

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

python dict转换成json格式的实现

《pythondict转换成json格式的实现》本文主要介绍了pythondict转换成json格式的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 一开始你变成字典格式data = [ { 'a' : 1, 'b' : 2, 'c编程' : 3,

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图