2017-01-25 2 views
1

Ich habe eine jsp-Datei, die ein JSON-Objekt mit dem folgenden Code zurückgibt:‚Unable Wert von JSON-Objekt in Knoten erhalten js

JSONObject object = new JSONObject(); 

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

    response.setContentType("application/json"); 
    response.getWriter().write(object.toString()); 

Die Ausgabe lautet: { "name": "domain",“ E-Mail ":" domain.com "}

ich versuche, die Werte aus diesem JSON mit folgendem Code in node.js zu erhalten:

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

in dem obigen Schnipsel mich für console.log folgende Ausgabe -

Körper: { "name": "domain", "E-Mail": "domain.com"}

Name Körper: undefined

Ich weiß nicht, warum "body.name" funktioniert nicht . Könnte irgendein Körper helfen, die Werte vom json-Objekt zu erhalten. Da Körper selbst Json-Objekt ist, muss ich JSON.parse nicht tun

Antwort

0

Versuchen Sie dies. Sie müssen die JSON-Zeichenfolge analysieren, um sie einem js-Objekt zuzuordnen.

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

body Objekt ist Zeichenfolge. Aus diesem Grund, wenn Sie versuchen, es in der Konsole zu schreiben:

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

Sie diese:

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

Aber da Körper String ist, können Sie nicht bekommen seine Eigenschaft name. String hat keinen Anspruch name. Sie sollten zuerst 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); 
     }) 
    })