Json对象显示

时间:2011-04-04 09:04:58

标签: jquery json

在进行ajax调用后,我得到了这样的json结果

{"answer":{"isPresent":true,"test":{"string":[""]},"Id":310}}

我想在文本区域中测试内容。当我在文本区域中检索并显示“test”的内容时,我只得到这个

[Object object]

如何序列化这个值?

代码:

$.ajax(
        {
                async:      true,
                beforeSend: function(){

                            },
                url:        'beginDisplay.do',
                type:       'POST',
                data:       param,
                dataType:   'json',
                success:    function(data, textStatus, XMLHttpRequest){ 

                                var isPresent= data.answer.isPresent;
                                if(isPresent){

                                var testString = data.answer.test;
                                $("#textArea").val(testString);


                            },
                error  :    function(XMLHttpRequest, textStatus, errorThrown){
                                //alert(XMLHttpRequest.responseText+" http code"+XMLHttpRequest.statusCode);
                                //alert('XMLHttpRequest:'+XMLHttpRequest+'===>> textStatus:'+textStatus+'==>>errorThrown:'+errorThrown);
                            },
                complete :  function(){
                                //alert('after complete....');
                                //unblockUI();
                            }
        }
    );

3 个答案:

答案 0 :(得分:1)

你想要使用JSON2 library提供的JSON.stringify方法,以及大多数浏览器本身使用的方法(除了IE< = 7),如果你想要一个JSON序列化版本的数据文字区。

答案 1 :(得分:1)

这是我在javascript控制台中测试的方式:

var j = {"answer":{"isPresent":true,"test":{"string":["text you want"]},"Id":310}};
console.log(j.answer.test.string)
>> ["text you want"]

在上面的结果中,j.answer.test.string仍然是一个对象,因此您需要指定所需的节点值。

因此,在您的代码中,您可以这样做:

var testString = data.answer.test.string[0];
$("#textArea").val(testString);

但是,我建议你不要使用“string”作为你的变量id。使用类似“str”的东西。

血腥细节:http://json.org/js.html

答案 2 :(得分:0)

目前,test 中的数据是一个对象。您将变量命名为testString,但实际上testString的值是对象{"string":[""]},"Id":310}

如果您想在文本框中包含原始json数据以外的其他内容,则需要访问test中的两个字段并将它们连接成您想要的格式。如果原始json没问题,请参阅@tobyodavies出色的答案。 :)