【问题标题】:Remove double quote only when inside another double quote (VB.NET)仅当在另一个双引号内时才删除双引号(VB.NET)
【发布时间】:2024-01-09 03:07:01
【问题描述】:

我正在使用库 JSON.NET 从网络中获取 JSON 字符串,但问题是我在字符串中得到了双引号。

来自网络的字符串如下

{"accionObjeto":"post","accionTipo":"commentario","ts":"02:48:55","nick":"seba123neo","userId":"1180918","id ":15521634,"accion_name":"Hola","url":"","titulo":"Hola como" estas"}

字符串除了结尾是完美的

问题来了

"titulo":"Hola como" estas"

我必须删除那个双引号,否则 JSON 是“无效的”

我到处寻找,但找不到如何做到这一点,我只需要删除双引号,而不是删除整个字符串中的所有其他引号。

感谢您的帮助。

【问题讨论】:

  • 由于来自 Internet 站点的 JSON 字符串无效,因此您无能为力。联系网站管理员并告诉他问题。作者必须纠正它,而不是消费者(你)。
  • 其实这不是网络产生的错误,网络唯一的作用就是为我提供发布的帖子的标题,并且在帖子标题中可以用双引号括起来,错误是 JSON。但我认为这可以通过编程方式解决。
  • 看看正则表达式 - 这听起来像是他们可以轻松解决的问题。

标签: vb.net string parsing json.net double-quotes


【解决方案1】:

从您的问题中不清楚您是生成 JSON 字符串还是从 Web 下载它。如果您正在创建它并且库没有正确转义字符串,请考虑自己转义它们。

这是一个有效的转义列表

\b 退格(ascii 代码 08) \f 换页(ascii 代码 0C) \n 换行 \r 回车 \t 制表符 \v 垂直制表符 \' 撇号或单引号 \" 双引号 \\ 反斜杠字符

如您所见,您必须通过\" 转义双引号。在您自己编写代码之前,请仔细查看您正在使用的库。如果它没有提供这样的功能,我会感到惊讶。

【讨论】: