gpt4 book ai didi

jquery - 如何在 jQuery 1.9.1 中使用 $.parseJSON?

转载 作者:行者123 更新时间:2023-12-01 06:50:55 25 4
gpt4 key购买 nike

我使用这个函数来测试 JSON 对象的有效性:

function is_JSON( test ) {
try { var c = $.parseJSON( test );
} catch (e) { return false; }
return true;
}

您可以看到它在这里工作得很好,使用 jQuery 1.8.3 ...

http://jsfiddle.net/xZYVY/

...但是如果你切换到 jQuery 1.9.1,这不起作用!

http://jsfiddle.net/xZYVY/1/

我错过了什么?有没有更好的方法来测试有效的 JSON?

最佳答案

这部分代码:

var test = ['thing1','thing2','thing3'];

创建一个数组而不是包含有效 JSON 表达式的字符串。它似乎可以在 1.8.3 上工作的原因是因为当时 parseJSON看起来像这样:

function( data ) {
if ( !data || typeof data !== "string") {
return null;
}
// ...
}

如您所见,如果您传递一个数组作为第一个参数,它将返回null;它不会抛出异常。

然后你的函数返回true:

parseJSON: function is_JSON( test ) {
try { var c = $.parseJSON( test );
} catch (e) { return false; }
// c === null
return true;
}

从 1.9 开始,就是 parseJSON看起来像:

parseJSON: function( data ) {
// Attempt to parse using the native JSON parser first
if ( window.JSON && window.JSON.parse ) {
return window.JSON.parse( data );
}

if ( data === null ) {
return data;
}
if ( data === null ) {
return data;
}
// etc.

如果传递的参数不是有效的 JSON 表达式,window.JSON.parse() 将抛出异常。

一个有效的表达式是这样的:

'["thing1","thing2","thing3"]'

测试:

> JSON.parse('["thing1","thing2","thing3"]')
["thing1", "thing2", "thing3"]

关于jquery - 如何在 jQuery 1.9.1 中使用 $.parseJSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15093419/

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