gpt4 book ai didi

javascript - 无法解析 JSON 的字符串属性中存在的 XML

转载 作者:行者123 更新时间:2023-11-29 20:33:50 26 4
gpt4 key购买 nike

Javascript JSON.parse() 无法解析包含 XML 或 SVG 的字符串。

我已经尝试从示例中删除属性并且它非常有效,请注意只有当 XML 包含属性时它才会失败。

使用 JSON.parse() 传递以下 JSON 字符串失败;

{ "id": 1, "mahtml": "<math xmlns=\"http://www.w3.org/1998/Math/MathML\" display=\"block\"><msup><mi>a</mi><mn>2</mn></msup><mo>&#x2212;</mo><mn>2</mn><mrow><mo>(</mo><mi>a</mi><mo>&#x00D7;</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>&#x2212;</mo><mn>2</mn><mrow><mo>(</mo><mi>a</mi><mo>&#x00D7;</mo><mi>b</mi><mo>)</mo></mrow><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup></math>" }

{ "id": 1, "svg": "<svg/><circle/></svg>" }

最佳答案

我猜 JSON 是手动复制的。 \" 必须是 \\" 才能对 \ 进行转义:

var json = '{ "id": 1, "mahtml": "<math xmlns=\\"http://www.w3.org/1998/Math/MathML\\" display=\\"block\\"><msup><mi>a</mi><mn>2</mn></msup><mo>&#x2212;</mo><mn>2</mn><mrow><mo>(</mo><mi>a</mi><mo>&#x00D7;</mo><mi>b</mi><mo>)</mo></mrow><mo>+</mo><msup><mi>b</mi><mn>2</mn></msup></math>" }'

console.log( JSON.parse(json) )

关于javascript - 无法解析 JSON 的字符串属性中存在的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57321580/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com