当双引号放在键/值内时,JSON损坏

时间:2018-12-31 10:42:11

标签: java json regex

样本数据:

{"630":{"TotalLength":"33-3/8" - 36-3/4""},"631":{"Length":"34 37 7/8"}}

我们正面临JSON响应中的双引号问题。我们如何用双引号替换键或值中的“ \”?Java是开发平台。

1 个答案:

答案 0 :(得分:0)

此答案是假定您无法控制创建类似JSON的字符串。如果您可以控制那部分,那么您应该自己正确地逃脱。

在这种情况下,由于系统解析不是一个有效的JSON,因此不是一种选择,因此,我只能建议您遍历各种字符串,看看是否可以找到一种模式,可以在其中应用一些逻辑并进行转义所有阻止该字符串成为有效JSON的"

这里可能是开始的方式:

所有要在字符串中成为有效JSON的"都被{:,{{1}中的一个或多个字符包围}和,}和其他JSON字符之间可以有空格。

因此,如果您使用Java解析类似JSON的字符串并查找所有",并且当遇到一个"时,它们是否与上述任何字符一起出现(在字符串中带有或不带有空格)之间),您只需保持原样。如果没有,请用"来代替\"

请注意,根据所涉及的数据,上述方法可能有效也可能无效。我的意思是说,如果在创建字符串的过程中绝对没有办法对字符串进行转义,并且对于未转义的{ {1}}个。