2014-10-29 125 views
2

我有一些JSON從Node.js Request包中的HTTP端點返回。響應的body與以下(的application/jsonContent-Type)一個JSON對象:Node.js請求 - 無法獲取REST響應(JSON)的屬性

{ 
    exchange_rate: 1.0, 
    format: { 
     symbol: '$', 
     precision: 2, 
     thousands_separator: ',', 
     decimal_separator: '.' 
    } 
} 

當我使用console.log(body);我得到以下(這是逐字以上):

{ 
    exchange_rate: 1.0, 
    format: { 
     symbol: '$', 
     precision: 2, 
     thousands_separator: ',', 
     decimal_separator: '.' 
    } 
} 

然而,當我嘗試訪問exchange_rate值,則返回undefined

console.log(body.exchange_rate); 

我試着使用JSON.parse(body);但它失敗,因爲它已經JSON:

SyntaxError: Unexpected token e 
    at Object.parse (native) 
    ... 

任何想法,我怎麼可以訪問此JSON的個別屬性?

回答

4

你的問題是,你有什麼是不是 JSON。

JSON中的屬性名稱必須由字符串代表,而不是標識符。字符串必須使用"字符引用,而不是'

您收到Unexpected token e錯誤,因爲您有一個e您應該有一個"

如果你有一個JavaScript對象(即已經成功解析了「JSON」),你會得到Unexpected token o(o not e),因爲它會被串聯到[object Object]

+0

真棒迴應,謝謝!我會給這個鏡頭。至少在這裏肯定會學到一些東西。 – trnelson 2014-10-29 21:59:49

+0

事實證明,這正是我所需要的。非常感謝您花時間回答! – trnelson 2014-10-30 16:16:45