在Javascript中读取json但它总是给出'undefined'

时间:2016-12-31 03:57:55

标签: javascript

我正在向我的javascript发送一个Json。

        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显示为'undefined'

请指导我错在哪里..

感谢

4 个答案:

答案 0 :(得分:1)

警报只能显示字符串。当你传递一个对象时,它不知道该怎么做,所以它只显示[object Object]

试试这个:

alert({foo: 'bar'})

它应该显示[object Object]。

JSON.parse返回hss 2键,Test和Test2的对象。没有名为result的键,因此jsonObject.result未定义。尝试:

alert(jsonObject.Test);

答案 1 :(得分:0)

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

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

或者您可以使用JSON.stringify以字符串形式查看整个json对象。

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

答案 2 :(得分:0)

显然,你result中没有jsonObject。相反,您有TestTest2 所以,尝试这样调用这个函数:

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

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

P.S。 Javascript是弱类型语言,因此您不应该定义参数的类型,因此您应该删除单词String

答案 3 :(得分:0)

使用:

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

您应该定义要显示或提醒的JSON数据的索引。即使您有1条记录。