# Regular Parsing JSON **Repository Path**: xiaobaichong/RegularParsingJSON ## Basic Information - **Project Name**: Regular Parsing JSON - **Description**: Json 解析工具 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-07-25 - **Last Updated**: 2022-08-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 使用正则表达式实现json文件解释 # 注意事项 - 支持使用 /**/进行单行或多行注释,不支持使用 // 进行单行注释 - 键(标签)/值 内容可以使用中英文,不要使用引号大括号和中括号 - 键可以带有不同类型的值,也会被解析出来 - 空数组不会解析,但是会被解压缩 - 空对象可以被解析和解压缩 - 文档示例基于 test.json,并使用java代码 - 弱匹配,可以匹配json格式,但是不会识别json语法 - `new JsonUtil(json)`一开始会压缩json,然后自动解析成`JsonElement:JsonUtil.jsonObj` # Json在线工具 [JSON格式校验器](https://json-online.com/check/) [Json语法高亮](https://www.kjson.com/jsonformat/) [Json格式化](https://c.runoob.com/front-end/53/) # JsonElement 结构图 ![图片丢失](./JSONTree.png) # Demo ~~~java JsonUtil ju=new JsonUtil(json); print(ju.toString()); print(ju.jsonObj.intValue.get("fda")+""); print(ju.jsonObj.boolValue.get(("Bool"))+""); print(ju.jsonObj.doubleValue.get("fdaf")+""); print(ju.jsonObj.stringValue.get("String")); print(ju.jsonObj.jsonValue.get("obj1").intsValue.get("IntArray").size()+""); print(ju.jsonObj.jsonValue.get("obj1").boolsValue.get("BoolAray").size()+""); print(ju.jsonObj.jsonValue.get("obj1").doublesValue.get("FloatArray").get(0)+""); print(ju.jsonObj.jsonValue.get("obj1").stringsValue.get("StringArray").get(0)+""); print(ju.jsonObj.jsonValue.get("obj1").jsonValue.get("obj").stringValue.get("String")+""); print(ju.jsonObj.jsonValue.get("obj1").jsonValue.get("obj").intValue.get("Int")+""); print(ju.jsonObj.jsonValue.get("obj1").jsonValue.get("obj").boolValue.get("Bool")+""); print(ju.jsonObj.jsonValue.get("obj1").jsonValue.get("obj").doubleValue.get("Float")+""); print(ju.jsonObj.jsonsValue.get("objs").size()+""); ju.jsonObj.jsonsValue.get("objs").forEach((S)-> { print(S.stringValue.get("name")); }); ~~~ # 文档 ## JsonUtil **`public JsonElement jsonObj`**:Json对象 **`public JsonUtil(String jsonStr)`**:构造函数,jsonStr:json字符串 **`private void Reduce()`**:压缩`JsonUtil.jsonStr` **`private void Init()`**:解析`JsonUtil.jsonObj:JsonElement` **`public String toString()`**:将 jsonObj 转化成 json字符串 ## JsonElement **`public HashMap stringValue`** 字符串集合 **`public HashMap intValue`** 整数集合 **`public HashMap doubleValue`** 浮点集合 **`public HashMap boolValue`** 开关集合 **`public HashMap jsonValue`** JsonElement 对象集合 **`public HashMap> stringsValue`** 字符串数组集合 **`public HashMap> intsValue`** 整数数组集合 **`public HashMap> doublesValue`** 浮点数组集合 **`public HashMap> boolsValue`** 开关数组集合 **`public HashMap> jsonsValue`** JsonElement对象数组集合 **`public JsonElement parentElement`** 父节点 **`public String rootTag`** 元素节点名称