禁止 JSON 中的单引号值

Disallow single quoted values in JSON

我正在解析一个 Json 文件,该文件应根据 json 的正式规范进行格式化,其中不包括将键和值括在单引号 (') 中的可能性.但是,使用 org.jsongson,实现正在接受这些条目并成功地将文件转换为 JsonObject。我需要它失败(我的流程中有第二次验证不允许单引号)。

我一直在研究配置解析器以使它们失败的方法。我读过 JacksonJsonParser 默认情况下不允许这样做,然后可以明确更改它。我可以对前面提到的库之一做同样的事情,还是应该改用 Jackson

谢谢!

org.json 是开源的,因此您可以构建一个不允许单引号字符串文字的修改版本。

JSONTokenerclass中修改nextValue()方法

public Object nextValue() throws JSONException {
    char c = this.nextClean();
    String string;

    switch (c) {
    case '"':
    case '\'': // ← ← ← ← ← ← ← ← ← ← ← ← REMOVE OR COMMENT THIS LINE
        return this.nextString(c);
    case '{':
        this.back();
        return new JSONObject(this);
    case '[':
        this.back();
        return new JSONArray(this);
    }
    
    ...