json结构校验代码

public static void main(String[] args) {
		Pattern pattern=Pattern.compile("[\\{\\[\\]\\}]");
		String a="{a:\"b\",c:[{d:\"e\",{f:\"g\",h:\"i\"}}]}";//示例
		Pattern pattern1=Pattern.compile("\\{\\}");
		Pattern pattern2=Pattern.compile("\\[\\]");
		Matcher matcher=pattern.matcher(a);
		StringBuilder sb=new StringBuilder();
		StringBuilder sb1=null;
		while(matcher.find()){
			String d=matcher.group(0);
			System.err.println(d);
			sb.append(d);
		}
		if(sb.length()%2!=0){
			System.err.println("error");
		}else{
			char[] cs=sb.toString().toCharArray();
			for(int i=0;i<=sb.length()/2-1;i++){
				sb1=new StringBuilder();
				sb1.append(cs[i]).append(cs[sb.length()-1-i]);
				System.err.println("sb2="+sb1.toString());
				Matcher matcher1=pattern1.matcher(sb1.toString());
				Matcher matcher2=pattern2.matcher(sb1.toString());
				while(matcher1.find()||matcher2.find()){
					System.err.println("json结构匹配");
				}
			}
			System.err.println("标签数是对的");
		}
	}


转载于:https://my.oschina.net/u/190643/blog/406790

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本次开源项目为JSON系列整套解决方案。*本方案可自动生成json索引表达式和排除json语法错误以及生成json文本等功能。 *混E官方论坛的应该了解该方案可以说是目前易语言 json开发方面最高开发效率的 成熟解决 方案。*最新版本2.1代码全部由@天朝红雨亲手编写,未参照任何开源算法,本版本精易论坛 首发! *2.1版本相对2.0版本改进:1.核心 :修复 删除项目时成员数不更新BUG。2. 修复【严格模式】时逗号结尾不报错BUG。3.编辑器: 修复 全部替换无法撤销BUG。4. 增加 向后插入项目。 类_JSON_ :已实现JSON解析、生成、编辑的整套方案,并已封装成模块。 未参照任何开源解析算法,经过多次改进已然成为了一个稳定强大的json处理核心。 类_格式化JSON_快速:以 类的形式对json文本格式化和反格式化 , 类的封装意味着一段超长文本可以分几次加入是没有问题的,不再担心卡机。 JSON调试器: JSON解析模块的附属品,也算是模块的例程,依托强大的 JSON解析、编辑核心已然可以说是最强大的JSON视图调试器,助您快速准确的找出json文本中的错误原因。 升级说明文档: JSON解析模块改进: 严格模式: A:JSON解析模块2.0加入了“严格模式”。 B:非“严格模式”下忽略一切错误。 C:“严格模式”下一但遇到语法错误将停止解析并返回错误信息。 顶级对象命名: A:模块在2.0版本中自创“顶级对象命名”模式。 B:故名思意,就是假设顶级对象也是某个对象的成员,所以允许命名。 C:这样在编辑时可以避免名称损失,但注意顶级对象命名不是标准的JSON规范! 其他改进: A:模块以前的方法命名比较接近“精易模块 ”2.0版本开始有很大调整。 B:“取通用属性()”方法现已更名“取项目值()并且参数不再向下兼容”具体用法参照本调试器。 C:加入更多对JSON对象安全的修改功能比如“置项目数据()”\“置项目值()”等。 D:加入对象或编辑器之间的沟通如“取项目数据()”\“取项目数据文本()”等。 E:修复文本转义时因常量指针造成的崩溃 。 F:更多使用改进内容请查看模块内部说明… 调试器改进: 相对于1.3版本JSON调试器: A:增加“语法高亮”。 B:默认情况下黑色文字说明出现了语法错误。 C:当出现灰色文字时说明出现了人们经常犯的语法错误。 D:增加代码“反格式化” E:更多改进请使用时体会… 基于@云外归鸟的“开源PB编辑器”的改进: A:修复编辑器频繁崩溃。 B:改进TAB画图方式为标准的分组对齐方式。 C:修复编辑器撤销出错BUG D:其他热键支持和Windows基础交互支持 对于严格模式我建议调试时启用,可以快速找到错误, 而发布后则关闭严格模式以最大的可能去兼容来自各路神仙生成的json代码文本, 保证程序顺利执行 。 引用了一个【异编自校验模块】易语言自校验模块鼻祖级别产品,也是开源产品,源码论坛搜索。 鸣谢:云外归鸟、易语言软件开发有限公司
你可以使用 JSON Schema 进行 JSON 结构验证。JSON Schema 是一个用于验证 JSON 数据结构的规范,可以定义 JSON 数据的结构、类型、范围等限制条件,并对 JSON 数据进行验证。 对于批量验证 JSON 内每个参数类型是否符合预期类型,你可以编写一个脚本来遍历 JSON 数据,并使用 JSON Schema 进行验证。具体步骤如下: 1. 编写 JSON Schema,定义 JSON 数据的结构和类型限制条件。 2. 编写一个脚本,可以读取 JSON 文件或从 API 获取 JSON 数据。 3. 遍历 JSON 数据,对每个参数进行类型验证,如果不符合预期类型,则记录并输出错误信息。 以下是一个使用 Pythonjsonschema 库进行 JSON 结构验证的示例代码: ```python import json from jsonschema import validate # 定义 JSON Schema schema = { "type": "object", "properties": { "name": {"type": "string"}, "age": {"type": "integer"}, "email": {"type": "string", "format": "email"} }, "required": ["name", "age"] } # 读取 JSON 文件 with open("data.json", "r") as f: data = json.load(f) # 遍历 JSON 数据并验证 for item in data: try: validate(item, schema) except Exception as e: print("JSON 格式错误:", e) ``` 在上述代码中,我们定义了一个 JSON Schema,指定了 name、age 和 email 字段的类型和必填条件。然后读取了一个 data.json 文件,遍历其中的 JSON 数据,使用 validate() 函数进行验证。如果遇到错误,就输出错误信息。 你可以根据具体的需求和 JSON 数据结构,自定义 JSON Schema 并修改上述代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值