【发布时间】:2014-12-15 00:50:24
【问题描述】:
我是 JSON、node.js 和 javascript 的新手...我有一个小型 node.js 服务器,它从 openweathermap.org 获取一个 JSON 对象(下面命名为 weatherData),我试图让它只显示JSON 对象的特定部分(称为“temp”的部分)。到目前为止我用过:
var tempString = JSON.stringify(weatherData);
然后我使用字符串的搜索和子字符串方法来获取我的信息,但必须有更简单的方法对吗?如何只显示临时部分而不使用字符串方法?
编辑:当我把整个事情串起来时,我得到了这个
"{\"coord\":{\"lon\":-75.7,\"lat\":45.41},\"sys\":{\"type\":3,\"id\" :119304,\"消息\":0.0297,\"国家\":\"CA\",\"日出\":1413804390,\"日落\":1413842906},\"天气\":[{\" id\":802,\"main\":\"Clouds\",\"description\":\"scattered 云\",\"图标\":\"03n\"}],\"base\":\"cmc 站\",\"主要\":{\"温度\":273.05,\"湿度\":84,\"压力\":1012.188,\"temp_min\":273.05,\"temp_max\":273.05 },\"风\":{\"速度\":1.11,\"度数\":260.506},\"雨\":{\"3h\":0},\"云\":{\ "all\":44},\"dt\":1413780770,\"id\":6094817,\"name\":\"渥太华\",\"cod\":200}\n"
【问题讨论】:
-
你为什么不做
JSON.stringify(weatherData.temp);? -
这完全是倒退。您拥有 javascript 对象形式的数据,您可以在其中直接访问所有部分。你不想把它串起来,然后把它变成一个寻找你想要的东西的复活节彩蛋。向我们展示 JSON 数据的样子,并准确指出您想要从数据中得到什么。
-
我试过了,但它打印出“未定义”。我认为这可能是因为它实际上并不称为 temp 但如果我打印整个 JSON,它会显示如下内容: {\"temp\":273.05,\"humanity\":84,\"pressure\":1012.188,\ "temp_min\":273.05,\"temp_max\":273.05},\"wind\":{\"speed\":1.11,\"deg\":260.506},\"rain\":{\"3h \":0},\"clouds\":{\"all\":44},\"dt\":1413780770,\"id\":6094817,\"name\":\"Ottawa\", \"鳕鱼\":200}\n"
-
请将 JSON 放入您的问题并正确格式化(使用编辑功能)。多行代码在 cmets 中可读性不强。
-
看起来你可能正在双重字符串化。
标签: javascript json node.js