未捕获的TypeError:无法读取未定义的属性“total”

时间:2016-04-21 23:21:01

标签: javascript jquery json node.js

我从我的响应对象中获取了一个JSON,所以我这样做:

double a = Double.NaN; Scanner reads = new Scanner(System.in); System.out.println("General equation: \"ax^2 + bx + c\""); System.out.print("Enter value of \"a\": "); try { String doubleString = reads.nextLine(); a = Double.parseDouble(doubleString); } catch (Exception e) { System.out.println("Invalid Data Type. Please enter a number"); } if(Double.isNaN(a)){ System.out.println("Variable 'a' is invalid, please enter a valid number."); } else { double result = 2 * a; }

我打印JSON并返回JSON。但是当我在var json = JSON.parse(res.text); 中检索值时,它会出现此错误:

json.body.value.total

我不知道为什么。我粘贴了从var json接收并打印在控制台上的值,并且能够检索总数。但我不能通过代码来做到这一点。总共有一个JSON值。它只是无法识别。在控制台上,它可以工作,但在代码中不起作用。

我从使用Uncaught TypeError: Cannot read property 'total' of undefined 检索的响应对象中获取JSON。我认为它需要在可解析对象中进行更改,但它返回的只是response.text

undefined

3 个答案:

答案 0 :(得分:1)

我构建的var eventEmitter = require('event-emitter') var childStart = require('./someChildProcess').start() if (childStart !== true) { eventEmitter.emit('progNotRun', { data: data }) } function proxyRequest(req, res) { var hostname = req.headers.host.split(":")[0]; proxy.web(req, res, { target: 'http://' + hostname + ':' + 5000 }); eventEmitter.on('progNotRun', function(data) { res.end('Cannot run app', data); }) } 返回了REST API,但有效的是:

response.body

以上看起来很荒谬,但那是有效的。 var body = JSON.parse(json.body); var obj = JSON.stringify(body); var jsonObj = JSON.parse(obj); 。找出它是一个json对象很难找到。

控制台做得很好但不是我正在使用的库。

完整的代码是:

json -> object -> json

答案 1 :(得分:0)

你必须将json字符串放入.collection并访问Parse函数结果的属性。

您不能只从文本中访问属性。

答案 2 :(得分:0)

您未将解析后的值分配给json

var json = res.text;

应该是

var json = JSON.parse(res.text);