多层嵌套json解析
多层嵌套json解析-- com.jayway.jsonpath.JsonPath
public class FormDefineHelper {private FormDefineHelper() {}private static final Configuration CONFIGURATION = Configuration.builder().options(Option.SUPPRESS_EXCEPTIONS, Option.DEFAULT_PATH_LEAF_TO_NULL).build();public static Map<String, Arguments> resolveToArguments(InputStream inputStream) {//@formatter:offMap<String, Arguments> map = new TreeMap<>();DocumentContext documentContext = JsonPath.using(CONFIGURATION).parse(inputStream);JSONArray nodes = documentContext.read("$.schema");if (nodes == null) {return map;}parseNode(map, nodes);return map;//@formatter:on}private static void parseNode(Map<String, Arguments> map, JSONArray nodes) {for (Object node : nodes) {DocumentContext context = JsonPath.using(CONFIGURATION).parse(node);Object code = context.read("@.__vModel__");if (code == null || code.toString().length() == 0) {continue;}String name = context.read("@.__config__.label");Boolean required = context.read("@.__config__.required");String fieldType = context.read("@.__config__.fieldType");/*string: STRING TEXT RADIO SELECT CHECKBOX SWITCHint: INTFILE refDATEDATETIME*/Object defaultValue = context.read("@.__config__.defaultValue");Arguments arguments = new Arguments().withCode(code.toString()).withName(name).withBelongsType(Arguments.BelongsType.FACTOR).withDefaultValue(defaultValue + "").withNotNull(Boolean.TRUE.equals(required) ? Arguments.NotNull.YES : Arguments.NotNull.NO).withType(transferToArgumentsType(fieldType)).withScope(Arguments.Scope.PRIVATE).withAdditionalProperty("fieldType", fieldType);map.put(arguments.getCode(), arguments);JSONArray children = context.read("@.__config__.children");if (children != null) {// 递归解析 --> children节点parseNode(map, children);}}}private static Arguments.Type transferToArgumentsType(String type) {if (type == null) {return Arguments.Type.STRING;}switch (type) {case "INT":return Arguments.Type.INT;case "FILE":return Arguments.Type.REF;case "DATE":return Arguments.Type.DATE;case "DATETIME":return Arguments.Type.DATETIME;case "TIME":return Arguments.Type.TIME;case "STRING":case "TEXT":case "RADIO":case "SELECT":case "CHECKBOX":case "SWITCH":return Arguments.Type.STRING;default:return Arguments.Type.valueOf(type);}} }
多层嵌套json解析相关推荐
- java解析多层嵌套json字符串
java解析多层嵌套json字符串 java分别解析下面两个json字符串 package jansonDemo;import com.alibaba.fastjson.JSON; import co ...
- 多层嵌套json转换为Map再转换为单层
多层嵌套json转换为Map再转换为单层 最近在实习的时候,需要将多层嵌套的json转换为单层的json.并且把json进行格式化.于是参照网上的网上的方法使用谷歌的gson利用递归的实现了多层jso ...
- ASP.NET提取多层嵌套json数据的方法
ASP.NET提取多层嵌套json数据的方法 本文实例讲述了ASP.NET利用第三方类库Newtonsoft.Json提取多层嵌套json数据的方法,具体例子如下. 假设需要提取的json字符串如下: ...
- 迭代解决多层嵌套json 转map
最近工作需要用到json 转map ,在网上看到了一个方法,但并不能解决多层嵌套json,在此对这个方法进行了迭代处理,解决这个问题 import net.minidev.json.{JSONObje ...
- python 处理json多层嵌套_python解析多层嵌套json
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 这样多层json结构已完成. 补充拓展:python 读取多层嵌套的json数据 ...
- mysql获取多层嵌套json_提取多层嵌套Json数据
在.net 2.0中提取这样的json {"name":"lily","age":23,"addr":{"ci ...
- Python数据处理Tips多层嵌套Json数据展平到DataFrame
在工作中需要处理嵌套数据(尤其是无模式的 MongoDB 日志等)或者是网络爬虫抓取下来的多层嵌套数据需要展平处理. 如果将它放在 BigQuery 中则很容易通过使用 WITHIN 等的查询将其更改 ...
- Hive中解析Json字段、json日志分析所用到的嵌套json解析
首先在百度搜索,json格式解析,将这段话变个格式看起来舒服. 然后,通过通过嵌套使用json函数解决.大概就是将内层的json字段当作一个整体,然后先将这个外层作为解析.在通过子查询使用方法,在外套 ...
- python 多层嵌套 json_python解析多层json操作示例
本文实例讲述了python解析多层json操作.分享给大家供大家参考,具体如下: 原始文件内容: { "MaskPolygonItem": { "0": { & ...
最新文章
- double取整数部分_剑指offer_16_数值的整数次方
- R语言dplyr包mutate_all函数一次性处理所有的数据列的内容(使用统一的函数)实战
- php验证用户名密码是否为空,【后端开发】php验证用户名密码是否为空
- python 中参数 ,解包和变量的入门
- [js] Geolocation.getCurrentPosition()用来做什么的?在什么浏览器不受兼容?
- MFC_2.2 编辑框和文本控件
- visualvm远程监控jvm_别再说你不会 JVM 性能监控和调优了,看完这篇再发言
- 解决异常:公共语言运行时检测到无效的程序
- jflash合并bin文件
- brctl 命令详解
- javascript重定向的方法和区别
- 如何正确认识和提升自己的格局
- 蚂蚱跳跃问题 【字节笔试】题目说 ”字节“跳动
- firebox - firebug, 解析json,httpRequest模拟请求等插件
- 毕业论文知识点记录(四)——MaxEnt模型
- 关于虚拟机无法启动(The VMware Authorization Service is not running)
- 运算放大器单电源供电和双电源供电
- 项目中项目评估概述及原则
- 华恩JAVA班第22天
- 8Lua从入门到精通-王桂林-专题视频课程