【问题标题】:How to Parse a Java String containing HTML element as JsonObject?如何将包含 HTML 元素的 Java 字符串解析为 JsonObject?
【发布时间】:2019-11-23 00:25:59
【问题描述】:

您好,我有一个从 HTTPRequest 接收到的具有以下值的 Java 字符串

{SubRefNumber:"3243 ",QBType:"-----",Question:"<p><img title="format.jpg" src="data:image/jpeg;base64,/9j/4AAQSkZJRgAB..."></img></p>"};

由于字符串包含 HTML 元素作为它的一部分,而我尝试将字符串解析为 JsonObject 如下(quesRow 是上面字符串作为值的变量)

JSONObject jsonObject = new JSONObject(quesRow);

我得到解析错误

org.codehaus.jettison.json.JSONException:在 {SubRefNumber:"3243.....

的字符 103 处需要一个 ',' 或 '}'

我需要将 Question Key 中的 HTML 元素解析为来自此 JSONString 的单独数据。有没有办法处理这种情况?请指导...TIA

【问题讨论】:

  • 发送给你的任何东西都是窃听器;修复那里的错误,不要试图在另一边解决它,因为这将非常复杂:HTML 不是常规的,所以试图找出 HTML 的结束位置和 borked JSON 继续是非常重要的.
  • 同意,HTML 使 JSON 无效,因为额外的相当标记弄乱了 JSON 属性字符串。创建 JSON 的人做得很糟糕,大概没有使用适当的序列化器
  • @ADyson 好的对不起......我是 JS 的新手......从今以后不知道如何在 Java Script 中构造一个 JSON 字符串以在其中包含一个 HTML 字符串......我尝试了一些转义函数在将 html 字符串添加到 JSON 字符串之前,但我仍然没有得到 Exepcted 结果....请指导我如何构建一个有效的 JSON 字符串,该字符串将包含 HTML...
  • Java 还是 JavaScript?他们是very different。但是,如果你用谷歌搜索“[你的语言在这里] 创建 JSON”,如果你没有得到很多结果来告诉你如何用你选择的语言正确地构造一个 JSON 对象,我会感到惊讶。基本规则是“永远不要通过手动将字符串连接在一起来创建任何 JSON。始终使用序列化器将编程语言的本机对象(或数组)转换为 JSON 字符串。这样你就不会遇到任何愚蠢的语法错误.
  • 例如,这是 google 上“Java create JSON”的第一个结果。 appsdeveloperblog.com/… 。我已经很久没有做任何 Java 了(肯定是在 JSON 成为流行的东西之前),但在我看来,这会告诉你该怎么做。

标签: java html json


【解决方案1】:

有效的 JSON 在字符串中不包含非转义引号 (")(请参阅 RFC 7159 第 7 章 - https://www.rfc-editor.org/rfc/rfc7159#page-9)。

在将源字符串中的引号放入 JSON 字符串参数时,有不同的选项可以转义:

  • 用反斜杠转义 - "
  • 转义为 Unicode 序列 - \u0022

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-29
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 2021-09-19
    • 1970-01-01
    • 2015-09-23
    相关资源
    最近更新 更多