如果下一个标记是},则创建一个空的 LinkedHashMap 并返回。...如果不是,则抛出解析异常:
然后进入循环流程,从 JSON 数据流中读取字符,并将其复制到 _tmp 数组中。当遇到双引号 "(表示字符串的结束),并返回复制的字符数。当遇到反斜杠 \(转义字符)时。...:
获取完对应的值后,如果此时的标记是逗号 ,,则继续读取下一个键值对,并将其存储到 res 中:
最后检查最后一个标记是否为右大括号},并返回前面填充的解析内容:
以上是DSL-JSON大致的解析过程...数据类型是LinkedHashMap,也就是说,如果在put操作时使用了已存在的键,则新值会替换旧值,原有的键值对会被新的键值对覆盖。...从 JSON 数据流中读取属性名称的字节,并将它们累加到 hash 中:
如果遇到反斜杠\(表示转义字符),则跳过下一个字节
如果遇到双引号 "(表示属性名称的结束),则退出循环
如果读取到数据流的末尾