使用JSON.parse将JSON解析为对象

时间:2015-10-25 11:33:55

标签: json node.js

我在Youtube Data API的JSON中有以下响应

{
 "kind": "youtube#channelListResponse",
 "etag": "\"0KG1mRN7bm3nResDPKHQZpg5-do/B7stMlWJTBpmW2q34yWKIzz8fF8\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {
   "kind": "youtube#channel",
   "etag": "\"0KG1mRN7bm3nResDPKHQZpg5-do/vV2FFZUI5inz53NuQDJMTs3tdQk\"",
   "id": "UCwy6X3JB24VTsDFqMwdO5Jg",
   "contentDetails": {
    "relatedPlaylists": {
     "uploads": "UUwy6X3JB24VTsDFqMwdO5Jg"
    },
    "googlePlusUserId": "114467711950028252332"
   }
  }
 ]
}

我试图使用JSON.parse将其变成一个对象,但这样做会给我这个。

{ kind: 'youtube#channelListResponse',
  etag: '"0KG1mRN7bm3nResDPKHQZpg5-do/B7stMlWJTBpmW2q34yWKIzz8fF8"',
  pageInfo: { totalResults: 1, resultsPerPage: 1 },
  items: 
   [ { kind: 'youtube#channel',
       etag: '"0KG1mRN7bm3nResDPKHQZpg5-do/vV2FFZUI5inz53NuQDJMTs3tdQk"',
       id: 'UCwy6X3JB24VTsDFqMwdO5Jg',
       contentDetails: [Object] } ] }

如何将contentDetails的值转换为适当的对象?

3 个答案:

答案 0 :(得分:2)

它已经是一个正确的对象,它只是没有正确输出到控制台上。尝试打印JSON.parse的结果,例如res使用以下内容:

console.log(util.inspect(res, { showHidden: true, depth: null }));

请参阅https://nodejs.org/api/util.html#util_util_inspect_object_options

答案 1 :(得分:0)

它是一个合适的对象,您仍然可以正常方式访问它的属性。因为console.log不打印深层对象,所以如果要在日志中看到它,请将其转换为字符串。在这里尝试对象字符串脚本 https://stackoverflow.com/a/5612876

答案 2 :(得分:0)

您可以使用 JSON.stringify(parsedObject)查看完整详情