如何转义json字符串中的单引号? JSON::ParserError Ruby

Posted

技术标签:

【中文标题】如何转义json字符串中的单引号? JSON::ParserError Ruby【英文标题】:How to escape single quotes in json string? JSON::ParserError Ruby 【发布时间】:2022-01-24 00:51:55 【问题描述】:

我得到 /json/common.rb:156:in `parse': 783: unexpected token at '' (JSON::ParserError) 尝试在 ruby​​ 中解析 json 文件时。问题是因为其中一个字符串中有一些单引号:

parsed = JSON.parse("
  \"key1\":\"value1\",
  \"key2\":\"value2\",
  \"key3\":12345,
  \"key4\":\"''value4''\",
  ")

有没有办法在不影响don't之类的单词的情况下转义字符串中的单引号? json 是使用JSON.parse(file.get_input_stream.read) 从文件中读取的,这就是为什么会有\

【问题讨论】:

你最好给我们看原始文件文本; 【参考方案1】:

单引号不是你的问题,你的问题是你有一个杂散的尾随逗号:

parsed = JSON.parse("
  \"key1\":\"value1\",
  \"key2\":\"value2\",
  \"key3\":12345,
  \"key4\":\"''value4''\",
") #--------------------^ This should not be there.

JSON 不允许使用逗号,因此您实际上没有 JSON 文件。

您应该找出文件的来源并修复该工具以生成真正的 JSON,而不是当前正在写入文件的“看起来很像 JSON”。

【讨论】:

谢谢。你说的对。问题不在于单引号。

以上是关于如何转义json字符串中的单引号? JSON::ParserError Ruby的主要内容,如果未能解决你的问题,请参考以下文章

Oracle中的单引号怎么转义

转义 JavaScript 字符串中的单引号以进行 JavaScript 评估

Java Regex:查找带转义的单引号文本

jshtml中的单引号双引号及其转义使用

SQL中的单引号转义符

vb去掉字符串中的双引号