我想从以下json对象中获取id值
answerTag:
[ '[{"id":64,"name":"Coronary Artery Disease"}]',
'[{"id":64,"name":"Coronary Artery Disease"}]' ],
risk: '1' }
答案 0 :(得分:2)
我有同样的问题。我发现在调用JSON.parse之前我必须删除前导和尾随括号才能使它工作。 try-catch中的JSON.parse没有失败,但是我无法访问结果对象中的值。
这是摘录。 "行[0]"是MySQL结果数组的第一行
result = JSON.stringify(rows[0])
result = result.replace(/(^\[)/, '');
result = result.replace(/(\]$)/, '');
try {
var resultObj = JSON.parse(result);
} catch (e) {
console.log("Error, not a valid JSON string");
}
var my_value = resultObj["my_key"];

希望这有帮助!
答案 1 :(得分:1)
你没有有效的JSON
作为有效的json应该有一个键值对
var answerTag=
{
"key1":{"id":64,"name":"Coronary Artery Disease"},
"key2":{"id":64,"name":"Coronary Artery Disease"},
"key3":{risk: '1' }
}
所以如果你想遍历那个,就把它放在像这样的循环中
getKeyValueFromJSON(answerTag);
function getKeyValueFromJSON(
for(var key in obj) {
alert("Key: " + key + " value: " + obj[key]);
}
}
或者如果我能够得到它 形成的JSON就像这样
var obj={
answerTag: [
'[{"id":64,"name":"Coronary Artery Disease"}]',
'[{"id":64,"name":"Coronary Artery Disease"}]' ],
risk: '1'
}
所以你可以像这样使用它
for(var key in obj) {
for(var innerKey in obj[key]) {
console.log("Key: " + innerKey + " value: " + obj[key][innerKey]);
}
}