【发布时间】:2019-12-10 19:01:06
【问题描述】:
Javascript JSON.parse() 无法解析包含 XML 或 SVG 的字符串。
我已经尝试从示例中删除属性,它就像一个魅力,注意它只有在 XML 包含属性时才会失败。
以下 JSON 字符串使用 JSON.parse() 传递失败;
{ "id": 1, "mahtml": "<math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><msup><mi>a</mi><mn>2</mn></msup><mo>−</mo><mn>2</mn><mrow><mo>(</mo><mi>a</mi><mo>×</mo><mi>b</mi><mo>)</mo></mrow><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup></math>" }
{ "id": 1, "svg": "<svg height=\"100\" width=\"100\"><circle cx=\"50\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"3\" fill=\"red\" /></svg>" }
使用 JSON.parse() 成功解析以下 JSON 字符串;
{ "id": 1, "mahtml": "<math><msup><mi>a</mi><mn>2</mn></msup><mo>−</mo><mn>2</mn><mrow><mo>(</mo><mi>a</mi><mo>×</mo><mi>b</mi><mo>)</mo></mrow><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup></math>" }
{ "id": 1, "svg": "<svg/><circle/></svg>" }
【问题讨论】:
-
使用 XMLSerializer 将 svg 转换为字符串表示,然后使用 JSON.stringify 转换为 JSON
-
我没有看到任何错误消息。您能否提供重现问题的可运行代码?
标签: javascript json xml svg