2013-11-14 157 views
3

我是一名在RaspberryPi上使用NodeJS的学校项目的电气工程师。我对于面向对象编程的想法相当陌生,并且无法从JSON对象获取特定值。无法从JSON中获取价值

我的程序查询的WolframAlpha它返回一个对象“结果”使用下面的代码:

var wolfram = require('wolfram').createClient("[CENSORED]") 

wolfram.query("integrate 2x", function(err, result) { 
    if(err) throw err 
    console.log("Result: %j", result) 
}) 

它返回以下JSON:

[ 
    { 
    "subpods": 
     [{ 
     "title":"", 
     "value":" integral 2 x dx = x^2+constant", 
     "image":"http://www5a.wolframalpha.com/Calculate/MSP/MSP36002050fgg595dgib5a000031a456025754352g?MSPStoreType=image/gif&s=59" 
     }], 
    "primary":true 
    }, 
    { 
     "subpods": [{ 
     "title":"", 
     "value":"", 
     "image":"http://www5a.wolframalpha.com/Calculate/MSP/MSP36012050fgg595dgib5a000055e24iecig9cc4ga?MSPStoreType=image/gif&s=59" 
    }], 
    "primary":false 
    } 
] 

我试图从获得“价值”第一个subpod。我想: var newResults = result.subpods[0].value;

但是这给了我一个错误: TypeError: Cannot read property '0' of undefined

我已经至少在最后一小时尝试不同的组合。请帮忙!

谢谢您的时间,

Bobbyg

+1

您需要解析JSON把它变成一个对象:http://stackoverflow.com/questions/5726729/如何解析json-using-nodejs – Jack

回答

9

result看起来像一个数组。

尝试:

var newResults = result[0].subpods[0].value; 
+0

非常感谢! – bobbyg603

4

试试下面的代码..

var newResults = result[0].subpods[0].value; 
+0

非常感谢! – bobbyg603