如何从节点js中的Json对象获取键值

时间:2016-07-08 12:45:26

标签: json parsing stringify

我想从以下json对象中获取id值

  answerTag: 
   [ '[{"id":64,"name":"Coronary Artery Disease"}]',
   '[{"id":64,"name":"Coronary Artery Disease"}]' ],
   risk: '1' }

2 个答案:

答案 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]);
   }      
}