json - JSON API 是否应该返回字符串或 JavaScript 对象?

标签 json node.js api

假设我向 Mailchimp 请求订阅者数据,他们发回一个正文中包含 JSON 的 http 请求。我可以去吗:

var thingy = body.property;

或者我应该去:

var object = JSON.parse(body);
var thingy = object.property;

另外,node.js 主体解析是否为我解析 JSON?

最佳答案

JSON 作为字符串通过线路从服务器发送。这就是 JSON——一种字符串格式。

它是否作为字符串或已解析的 Javascript 对象到达您的代码,完全取决于您用于发出 http 请求的代码,可能还取决于服务器设置的 header 以及执行 Ajax 调用的代码进行的自动检测。

如果响应 header 将类型设置为 json,那么发出请求的某些代码会自动将其解析为 Javscript。其他代码会将其留给调用者来做。如果服务器没有设置正确的 header ,那么某些代码会自动将其检测为 JSON 并解析它,而其他代码则不会。

所以...底线。这完全取决于服务器在响应中执行的操作以及使用什么代码来发出请求。您可以非常轻松地执行 console.log(body) 并查看是否有 JSON 字符串或已解析的 Javascript 对象。

如果您确实不确定会得到什么行为,您可以测试类型并在测试其行为后采取相应的操作(尽管给定的服务器和调用代码应该一致,因此您不必改变您的行为)。

if (typeof body === "string") {
    body = JSON.parse(body);
}

关于json - JSON API 是否应该返回字符串或 JavaScript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32725207/

相关文章:

Java 在不使用引号的情况下向 json 对象添加函数。

php - 当发生太多 $.getJSON 请求时,keyup 函数会卡住页面

node.js - 如何在 Windows 10 上构建 node-gyp?

node.js - Nodejs - 写入和保存文件

api - Paypal REST API 凭据无效

php - 使用 Microsoft Translator API 翻译超时

MySQL 附加到年份值

PHP、MYSQL、JSOn社交网站快速搜索功能技巧

node.js - NodeJS 负载/压力测试结果

javascript - 在连续的 Ajax 函数中使用相同的变量