能否移除JSON中键的双引号但不修改值的双引号?
需求实现结论
该需求可以实现,本质是将标准JSON格式转换为无键名双引号的JavaScript对象字面量格式。
注意:转换后的格式不符合标准JSON规范,仅可在支持无引号对象键的环境(如JavaScript/TypeScript代码)中使用,无法被通用JSON解析器识别。如果你的键名包含空格、短横线、中文等非合法标识符字符,不建议进行该转换,否则会引发语法错误。
实现代码示例
核心逻辑为:先将JSON字符串解析为对象,序列化后通过正则匹配替换掉合法标识符键的外层双引号。
- JavaScript 实现:
const input = '{"start_time": {"_gte": "2021-10-10 19:00:00"}, "end_time": {"_gte": "2021-10-10 19:30:00"}}'; const obj = JSON.parse(input); const result = JSON.stringify(obj).replace(/"([a-zA-Z_]\w*)":/g, '$1:'); console.log(result); // 输出:{start_time: {_gte: "2021-10-10 19:00:00"}, end_time: {_gte: "2021-10-10 19:30:00"}}
- Python 实现:
import json import re input_str = '{"start_time": {"_gte": "2021-10-10 19:00:00"}, "end_time": {"_gte": "2021-10-10 19:30:00"}}' obj = json.loads(input_str) json_str = json.dumps(obj) result = re.sub(r'"([a-zA-Z_]\w*)":', r'\1:', json_str) print(result) # 输出:{start_time: {_gte: "2021-10-10 19:00:00"}, end_time: {_gte: "2021-10-10 19:30:00"}}
内容的提问来源于stack exchange,提问作者fourloops
相关产品推荐
相关产品推荐

