方法中,首先检查当前的 JSON 标记是否为{(表示映射的开始)。...如果不是,则抛出解析异常:
然后进入循环流程,从 JSON 数据流中读取字符,并将其复制到 _tmp 数组中。当遇到双引号 "(表示字符串的结束),并返回复制的字符数。当遇到反斜杠 \(转义字符)时。...,如果此时的标记是逗号 ,,则继续读取下一个键值对,并将其存储到 res 中:
最后检查最后一个标记是否为右大括号},并返回前面填充的解析内容:
以上是DSL-JSON大致的解析过程。...在ObjectFormatDescription#bindContent的逻辑中,首先检查当前的 JSON 标记是否为},如果是,则检查是否有必填属性未被赋值:
否则进入JSON的解析,进入一个循环,遍历所有需要绑定的属性...从 JSON 数据流中读取属性名称的字节,并将它们累加到 hash 中:
如果遇到反斜杠\(表示转义字符),则跳过下一个字节
如果遇到双引号 "(表示属性名称的结束),则退出循环
如果读取到数据流的末尾