java - 不允许 JSON 中的单引号值
问题描述
我正在解析一个 Json 文件,该文件应根据 json 的正式规范进行格式化,其中不包括将键和值包含在单引号 (') 中的可能性。但是,使用org.json
或gson
,实现将接受这些条目并成功地将文件转换为JsonObject
. 我需要它失败(我的流程中有第二个验证不允许单引号)。
我一直在研究配置解析器以使其失败的方法。我读过默认情况下不允许这样做,然后有可能显式更改它Jackson
。 JsonParser
我可以对前面提到的库之一做同样的事情,还是应该Jackson
改用?
谢谢!
解决方案
org.json
是开源的,因此您可以构建一个不允许单引号字符串文字的修改版本。
在JSONTokener
类中,修改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);
}
...
推荐阅读
- php - SQL 从数组中删除条目作为源
- node.js - 如何为 Firebase 推送通知生成设备令牌?
- python-3.x - 似乎无法让蓝牙代理在 Raspberry Pi 中工作
- dns - 带有子域的 Cloudflare DNS
- javascript - 我导入但不能使用它 ReactJS
- javascript - Socket Array 不存储套接字客户端数据并在每个客户端数据到达时继续重置
- sql - 基于多表sql的select语句
- android - MaterialButton ClassCastException
- javascript - 如何在 JavaScript 中创建开始日期和结束日期数组?
- visual-studio - visual studio 16.11.5 git 错误,“无法从远程存储库获取”