[英]how to escape quotes inside quotes from jsonString in Java
我有双引号的问题。 我们有一个 JAVA Web 服务器,其中的字符串输入被解析为 JSON。 有时,提供给我们的数据包括引号内的引号,这会破坏 JSON 解析器。 他们似乎不可能逃脱这些角色,所以我可以逃脱他们吗?
例如数据是这样的:{"id":"101","user":"username","comment":"Example: "Comment: 123" test" }
“评论”中的引号是我需要转义的内容。
有时,提供给我们的数据包括引号内的引号,这会破坏 JSON 解析器。
那么它不是正确的 JSON,句号。 引号内的引号必须在 JSON 中转义。
他们似乎不可能逃脱这些字符......
更有可能的是,有人不想投入精力修复生成无效 JSON 的损坏软件。
....所以我可以在我们的最后逃脱他们吗?
你不会逃到最后。 您将编写一个自定义JSON 解析器来处理输入数据中的某些类型的损坏,并希望对其进行更正以符合发件人的意图。 它将有效地猜测在被解析的测试中转义应该在哪里。
这将是很多工作。 你以前写过解析器吗?
困难之一是知道引用的字符串应该在哪里结束。
比较这些:
{"id":"101","user":"username","comment":"Example: "Comment: 123" test" }
{"id":"101","user":"username","comment":"Example: "Comment: 123" test" }" }
在第一种情况下,您可能希望“评论”属性的值以test
结尾。 但是第二种情况呢? }
是属性值的一部分吗? 为什么不在第一种情况下?
问题在于,当您的 JSON 在语法上不正确时,可以通过许多不同的方式更正解析器,最终得到有效的 JSON。 知道哪个修正是正确的修正是......嗯......一个问题。
我认为你应该听从 Jon Skeet 的建议。
推回。
告诉他们最后修复损坏的 JSON。
告诉他们要求是 >>JSON<< 并且不根据标准 JSON 语法解析的东西不是 JSON。
如果他们坚持:
为超出约定要求范围的额外工作向他们收费; 即JSON。
指出可能不可能为他们的东西编写一个解析器,它总是根据作者的期望解释他们的“非 JSON”文本。 (这取决于 JSON 模式的复杂程度以及错误引用问题的广泛程度。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.