2014-10-29 129 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