Javascript 使用jQuery从JSON获取值
我得到以下字符串:Javascript 使用jQuery从JSON获取值,javascript,jquery,json,Javascript,Jquery,Json,我得到以下字符串: [{"Key":1,"Value":"correct"},{"Key":2,"Value":"incorrect"},{"Key":3,"Value":"incorrect"},{"Key":4,"Value":"correct"},{"Key":5,"Value":"incorrect"}] 我想根据TR的ID在JSON中的值是“正确”还是“不正确”来更改TR的背景色 如何从JSON中获取单个项的值?我试过: success: function (
[{"Key":1,"Value":"correct"},{"Key":2,"Value":"incorrect"},{"Key":3,"Value":"incorrect"},{"Key":4,"Value":"correct"},{"Key":5,"Value":"incorrect"}]
我想根据TR的ID在JSON中的值是“正确”还是“不正确”来更改TR的背景色
如何从JSON中获取单个项的值?我试过:
success: function (result) {
// update with results
//alert(JSON.stringify(result));
//$('#myDiv').html(JSON.stringify(result));
// non of these work
alert(result[0]);
alert(result[key]);
},
请确保指定数据类型:Ajax请求中的“json” 试一试 //
确保指定数据类型:Ajax请求中的“json” 试一试 // 可以使用
$.each()
迭代对象数组
$.each(result, function(i, item) {
alert(item.Key);
});
在对$的回调中,项将是对正在迭代的数组中当前项的引用
然后您只需使用普通属性访问来获取键
属性的值
当然,您也可以使用传统的for
语句来循环数组
for (var i = 0; i < result.length; i++) {
var item = result[i];
alert(item.Key);
}
for(变量i=0;i
所有这些都假设您的响应具有适当的内容类型设置,或者您已经将数据类型:“json”
赋予$。ajax()
您可以使用$。each()
迭代对象数组
$.each(result, function(i, item) {
alert(item.Key);
});
在对$的回调中,项将是对正在迭代的数组中当前项的引用
然后您只需使用普通属性访问来获取键
属性的值
当然,您也可以使用传统的for
语句来循环数组
for (var i = 0; i < result.length; i++) {
var item = result[i];
alert(item.Key);
}
for(变量i=0;i
所有这些都假设您的响应具有适当的内容类型设置,或者您已经将数据类型:“json”
赋予$.ajax()
您没有指定,但是假设您的ajax代码接收到的json字符串作为响应,那么您实际上是在json该文本,所以它变成了一个双重编码的字符串
jquery可以为您自动将其解码回本地结构,前提是您希望json作为响应,例如
$.ajax({
dataType: 'json',
etc...
});
那你就干脆
alert(result[0]['key']);
或
您不需要指定,但假设JSON字符串是您的ajax代码作为响应接收的字符串,那么您实际上是在JSON该文本,因此它将成为双编码字符串
jquery可以为您自动将其解码回本地结构,前提是您希望json作为响应,例如
$.ajax({
dataType: 'json',
etc...
});
那你就干脆
alert(result[0]['key']);
或
您可以将JSON格式转换为对象,在您的情况下,它将是数组,所以您可以使用forEach检查您想要的内容
试试这个
var obj= JSON.parse( '[{"Key":1,"Value":"correct"},{"Key":2,"Value":"incorrect"},{"Key":3,"Value":"incorrect"},{"Key":4,"Value":"correct"},{"Key":5,"Value":"incorrect"}]' );
obj.forEach(function(i){alert(i.Key);alert(i.Value) })
您可以将JSON格式转换为对象,在您的情况下,它将是数组,所以您可以使用forEach检查您想要的内容
试试这个
var obj= JSON.parse( '[{"Key":1,"Value":"correct"},{"Key":2,"Value":"incorrect"},{"Key":3,"Value":"incorrect"},{"Key":4,"Value":"correct"},{"Key":5,"Value":"incorrect"}]' );
obj.forEach(function(i){alert(i.Key);alert(i.Value) })
看看这个:我并没有使用它,但看起来像是一个从Json结构中获取值的好方法 看看这个:我没有用过它,但它看起来像是从Json结构中获取值的好方法 你得到了什么输出?或者什么错误?你得到了什么输出?或者什么错误?那么ajax调用失败了,您的成功代码块永远不会被调用。添加一个错误
块来捕获该错误,并查看原因。不,调用success块是因为我正在通过$('#myDiv').html(JSON.stringify(result))输出整个JSON字符串代码>。问题在于成功代码块内部的代码。不过,感谢您的帮助。然后ajax调用失败,您的成功代码块永远不会被调用。添加一个错误
块来捕获该错误,并查看原因。不,调用success块是因为我正在通过$('#myDiv').html(JSON.stringify(result))输出整个JSON字符串代码>。问题在于成功块中的代码。不过,感谢您的帮助。我尝试使用alert(结果[0][“key]”)代码>和警报(结果[0][“键])代码>但它只是说“未定义”。请尝试console.log(结果)。。您看到了什么?我很忙,因此我必须继续使用$的工作解决方案。每个都要感谢您的帮助。我尝试使用警报(结果[0][“键])代码>和警报(结果[0][“键])代码>但它只是说“未定义”。请尝试console.log(结果)。。您看到了什么?我很忙,所以我必须继续使用$的工作解决方案。每个都要感谢您的帮助。