Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回的JSON属性不是my node.js express应用程序中的字符串_Javascript_Json_Node.js - Fatal编程技术网

Javascript 返回的JSON属性不是my node.js express应用程序中的字符串

Javascript 返回的JSON属性不是my node.js express应用程序中的字符串,javascript,json,node.js,Javascript,Json,Node.js,对于我的node.js express应用程序,我使用模块通过RESTAPI请求数据 这是我在app.js中的请求实现 我得到的JSON响应如下 { status: 1, complete: 1, list: { '890245271': { item_id: '890245271', resolved_id: '890245271', given_url: 'http://davidwalsh.name/open-graph-dat

对于我的node.js express应用程序,我使用模块通过RESTAPI请求数据

这是我在app.js中的请求实现

我得到的JSON响应如下

{ status: 1,
  complete: 1,
  list: 
   { '890245271': 
      { item_id: '890245271',
        resolved_id: '890245271',
        given_url: 'http://davidwalsh.name/open-graph-data-nodejs',
        given_title: 'Get Open Graph Data with Node.js',
        ... } 
   },
  error: null,
  search_meta: { search_type: 'normal' },
  since: 1444630917 }
问题是这是无效的JSON,因为JSON属性必须是字符串。我在这里遗漏了什么?

您正在解析JSON:

console.log(JSON.parse(body))
// Here ----^^^^^^^^^^^^^^^^
因此,您看到的是解析JSON后产生的JavaScript对象的console.log表示

如果您想看到JSON,只需不解析:

console.log(body);

您在第二个代码块中显示的响应是console.logJSON.parsebody所记录的?是的,这就是我在Terminal中看到的,当您的应用程序运行正常时。您正在使用JSON.parse将主体中的JSON响应解析为JavaScript对象。谢谢,我承认我遵循了其他人的代码,没有将其分解。您通常在视图中呈现之前解析JSON吗?谢谢。我想我对JSON还是不够了解。对于初学者,您是否介意分享何时解析JSON以及何时不解析?@SeongLee:JSON是一种文本表示法,因此,当您在代码中处理JSON时,您处理的是字符串。如果您想编写代码来处理JSON字符串中的信息,可以对其进行解析。例如,如果您有JSON字符串“{answer:42}”,并且您想知道答案是什么,那么您可以解析字符串var obj=JSON.parsestr;然后访问数据obj.answer。@SeongLee:有一件事可能会让你感到困惑,那就是有很多人说JSON,而实际上他们指的是JavaScript对象。你一直看到这个:我有一个json:var obj={answer:42};这不是JSON,而是JavaScript代码。但这是一个极其常见的错误,如果你看到有人这样做,你可能会感到困惑。规则很简单:如果您正在编写与之交互的代码,并且它不是字符串,那么它就不是JSON。非常感谢。我现在明白了。
console.log(body);