Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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
';无法从节点js中的JSON对象获取值_Json_Node.js - Fatal编程技术网

';无法从节点js中的JSON对象获取值

';无法从节点js中的JSON对象获取值,json,node.js,Json,Node.js,我有一个jsp文件,它使用以下代码返回json对象: JSONObject object = new JSONObject(); object.put("name","domain"); object.put("email","domain.com"); response.setContentType("application/json"); response.getWriter().write(object.toString()); 输出为:{“n

我有一个jsp文件,它使用以下代码返回json对象:

    JSONObject object = new JSONObject();

    object.put("name","domain");
    object.put("email","domain.com");

    response.setContentType("application/json");
    response.getWriter().write(object.toString());
输出为:{“name”:“domain”,“email”:“domain.com”}

我试图使用node.js中的以下代码从这个JSON获取值:

        var endpoint = // contains the address of the above jsp file;

        var body = ""
        http.get(endpoint, (response) => {
          response.on('data', (chunk) => { body += chunk })
          response.on('end', () => {
            console.log("Body: "+body);
            console.log("Body name: "+body.name);
          })
        })
在上面的代码段中,我得到了console.log的以下输出-

正文:{“名称”:“域”,“电子邮件”:“domain.com”}

主体名称:未定义

我不知道为什么“body.name”不起作用。
请任何人帮助从json对象获取值。因为body本身是json对象,所以我不需要做json.parse。必须解析JSON字符串才能将其分配给js对象

    var endpoint = // contains the address of the above jsp file;

    var body = {}
    http.get(endpoint, (response) => {
      response.on('data', (chunk) => { body = JSON.parse(chunk) })
      response.on('end', () => {
        console.log("Body: "+body);
        console.log("Body name: "+body.name);
      })
    })

body
对象是字符串。因此,当您尝试在console中编写时:

console.log("Body: "+body); 
你得到这个:

Body: {"name":"domain","email":"domain.com"}
但由于body是字符串,所以无法获取其属性
name
。字符串没有proerty
名称
。你应该首先

    var endpoint = // contains the address of the above jsp file;

    var body = ""
    http.get(endpoint, (response) => {
      response.on('data', (chunk) => { body += chunk })
      response.on('end', () => {
        console.log("Body: "+ body);
        var parsedBody = JSON.parse(body);
        console.log("Body name: "+ parsedBody .name);
      })
    })