2016-12-31 32 views
3

我正在发送一个Json到我的javascript。在Javascript中阅读json,但它始终给出'undefined'

 myMethod(String json) {   
     alert(json); 
     var jsonObject = JSON.parse(json); 
     alert(jsonObject); 
var myResponseResult = jsonObject.result; 
var myResponseCount = jsonObject.count; 
} 

它显示了JSON作为

   {"Test":"123", "Test2":"234"} 

但它显示的JSONObject作为

   [object Object] 

,并显示jsonObject.result为 '未定义'

请指引我在哪儿错了..

谢谢

+0

您是否尝试过console.log()而不是alert?它会让你看到你的对象中发生了什么。通常,控制台日志无论如何都是更好的练习,因为它不具有破坏性并显示更多信息。 –

+0

请缩进您的代码。 – 2016-12-31 06:08:00

回答

1

警报只能显示字符串。当你传递一个对象,它不知道怎么用它做,所以它只是显示的翻译:

试试这个:

alert({foo: 'bar'}) 

它应该显示[对象的对象。

JSON.parse返回hss 2键Test,Test2的对象。没有键称为result,所以jsonObject.result是未定义的。请尝试:

alert(jsonObject.Test); 
+0

你对,谢谢 – junaidp

0

您的结果数据是一个对象。所以阅读json试试

var obj=JSON.parse('{"Test":"123", "Test2":"234"}') 
alert(obj.Test) 

或者你可以使用JSON.stringify来查看整个json对象作为一个字符串。

alert(JSON.stringify({"Test":"123", "Test2":"234"}) 
0

很显然,你没有在你的jsonObjectresult。相反,你有TestTest2
所以,尽量调用这个函数是这样的:

myMethod('{"result":"123", "count":"234"}')

至于[object Object] - 这是正常行为。如果您想查看对象的内容,则应使用console.dir(jsonObject);而不是alert(jsonObject);,然后打开控制台(Chrome中的F12)并查看结果。

P.S. Javascript是弱类型的语言,所以你不应该定义参数的类型,所以你应该删除单词String

0

用途:

var _Result = JSON.parse(response); 
var _Test1 = _Result[0].Test; 
var _Test2 = _Result[0].Test 

你应该定义你想,你的JSON数据的索引,如果你有1条记录显示或alerted.even。