2013-11-14 41 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