# jsonanalyzer **Repository Path**: beiding/jsonanalyzer ## Basic Information - **Project Name**: jsonanalyzer - **Description**: json分析工具,支持search方法进行值模糊搜索,支持find方法进行精确搜索,支持过滤获取必要的分析键,支持json格式化等操作 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2020-06-10 - **Last Updated**: 2022-09-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # jsonanalyzer #### 介绍 json分析工具,支持search方法进行值模糊搜索,支持find方法进行精确搜索,支持过滤获取必要的分析键,支持json格式化等操作 #### 软件架构 该分析工具主要用于对一个json进行搜索格式化等操作 1. 检索类操作: 抽象了三个关键方法,分别是: 1.1 visit 深度遍历json中的所有的节点,以DeepVisitor为回调,回调接收json节点、json节点分析键(指从根节点开始,由key和索引构成的长串,例如:user.labels[1].text )、父节点、父节点分析键、节点所在父节点的索引(如果父节点是列表)、节点所在父节点的key(如果节点是json)等参数。返回int型的控制代码,0表示继续深度递归节点;1表示不再深度递归当前节点但后续节点仍会处理;2表示终止递归 1.2 deepAll 基于visit遍历所有节点,方法接收Checker为回调,该方法将搜集所有Checker的非null返回值 1.3 deepByTime 基于visit遍历部分节点,方法接收Checker和int型的匹配次数,将返回最后一次匹配的结果,Checker返回非null为匹配 >. 检索类已实现三类常规操作,其他操作可使用以上三个抽象方法自行拓展 三类常规操作: a. find 接收Object类型参数,返回精准匹配的json节点 b. search 接收正则参数,返回匹配正则的json节点 c. contains 接收String类型参数,返回包含参数的json节点 2. 分析键赋值: 分析键是多区段的,例如: a.b.list[1].c ,使用分析键不仅可以实现赋值,还可以缺失对象时自动创建 例如:一个json对象 { a:{} } 当使用一下操作: analyzer.set("a.b.list[1].c","测试") json对象将变成 { a:{ b:[ null, { c:'测试' } ] } } 3. json格式化: 例如: 一个原始的json对象: {name:"测试",list:["a"]} 格式化后: { name:"测试", list:[ "a" ] } 4. 其他 例如,获取父节点,节点clone,json合并组操作等