【问题标题】:'Unable to get value from JSON object in node js'无法从节点 js 中的 JSON 对象获取值
【发布时间】:2017-01-25 23:54:21
【问题描述】:

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

    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);
          })
        })

在上面的 sn-p 中,我得到了 console.log 的以下输出 -

正文:{"name":"domain","email":"domain.com"}

主体名称:未定义

我不知道为什么“body.name”不起作用。 任何人都可以帮助从 json 对象中获取值。因为,body 本身就是 json 对象,所以我不需要做 JSON.parse

【问题讨论】:

    标签: json node.js


    【解决方案1】:

    试试这个。您必须解析 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);
          })
        })
    

    【讨论】:

      【解决方案2】:

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

      console.log("Body: "+body); 
      

      你明白了:

      Body: {"name":"domain","email":"domain.com"}
      

      但是由于 body 是字符串,所以您无法获取其属性 name。字符串没有属性name。你应该先parse string to 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);
              var parsedBody = JSON.parse(body);
              console.log("Body name: "+ parsedBody .name);
            })
          })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-03
        • 1970-01-01
        • 1970-01-01
        • 2021-04-26
        • 2015-08-14
        相关资源
        最近更新 更多