gpt4 book ai didi

javascript - 你如何解析非格式良好的 JSON(可能使用 jQuery)

转载 作者:行者123 更新时间:2023-11-30 10:14:33 26 4
gpt4 key购买 nike

除了使用 eval 之外,还有其他方法可以解析非格式良好的 JSON 吗?

背景是,我正在使用数据标签值绘制这样的图表:

<div id="data" data-idata="[1,2,3]" data-sdata="['foo','bar','baz']"></div>

这可以完美地处理数值,这些值直接在 jQuery 数据中作为数组传递,无需在此处解析 JSON。

但是,对于标签,要传递一个字符串数组。 eval 可以很好地解析 sdata 中的字符串,但是 JSON.parsejQuery.parseJSON 失败,因为它是格式不正确的 JSON。

var $data = $("#data").data(),
values;

// use eval
out("#out", eval($data.sdata)); // works...

// use JSON.parse
try
{
values = JSON.parse($data.sdata);
} catch(e) {
// silent catch
}
out("#out1", values); // values is undefined

我整理了一个 JsFiddle here检查东西。

最佳答案

你得到错误是因为 ['foo','bar','baz'] 包含单引号。 JSON RFC指定 string 应该用双引号括起来。

可能有一些解决方法。

data- 属性中切换引号:

<tag data-sdata='["foo","bar","baz"]' />

或者在 Javascript 中替换:

values = JSON.parse($data.sdata.replace("'","\""));

关于javascript - 你如何解析非格式良好的 JSON(可能使用 jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24568487/

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