2011-04-04 139 views
0

我得到在文本區域調用AjaxJSON對象顯示

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

我想測試的內容後JSON結果是這樣的。當我在文本區域檢索並顯示「測試」的內容時,我只能得到這個

[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(); 
          } 
     } 
    ); 
+0

你能粘貼你使用的代碼嗎? – Philip 2011-04-04 09:07:01

+0

@philip:我已經添加了代碼 – karthick 2011-04-04 09:13:44

回答

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

不過,我建議你不要使用「字符串」作爲您的變量ID。改用「str」之類的東西。

血淋淋的細節:http://json.org/js.html

1

你要使用JSON.stringify方法,由JSON2 library提供,並且原生大多數瀏覽器(IE除外= < 7)如果你想要的數據的JSON序列化版本在文本區域。

0

現在,test中的數據是的一個對象。您命名變量testString,但真正的testString值是對象{"string":[""]},"Id":310}

如果你想比在文本框內原始JSON數據,你將需要訪問這兩個領域內test和將它們連接起來成格式的其他東西,你想。如果原始json沒問題,請參閱@tobyodavies優秀的答案。 :)