做了一个特定 json 文本内容的风格和逻辑检查工具,之前使用的方案是找到内容错误后返回关键词,然后去全文匹配,但是这个方法有很多漏洞,比如关键词重复..、
使用的是 rapidjson 解析
现在想换一个方法来返回错误行号,有什么好的方法吗?
使用的是 rapidjson 解析
现在想换一个方法来返回错误行号,有什么好的方法吗?

1 gadfly3173 Aug 18, 2023 via Android 简单搜索了一下,如果你要的是解析错误的话好像这个 pr 已经解决了: https://github.com/Tencent/rapidjson/pull/1070 ,如果是风格检查的话,获取解析前的行号好像做不到,但是你可以换成展示错误所在的节点?比如返回 obj[0].content 之类的 |
2 jonty OP @gadfly3173 #1 你好,可能我没表达清楚我的意思。我说的检查工具其实是 json 已经成功反序列化后成对象了,我对对象进行的风格和逻辑检查。 |
3 hitmanx Aug 18, 2023 用 C++遍历每一行去 tokenize JSON 文件,记录当前的行号。tokenize 过程中把每一个 token(string, number, {, }, [, ], ..)的行号和 token 一起记录下来。然后和往常一样 parse tokens ,但是把行号信息一起取出存在节点里。这样每个节点就有了行号信息 |