2011-02-04 49 views
1

我需要從服務器端生成json,我知道該怎麼做。然而,我不知道如何格式化這個json數據,所以它可以很容易地在jQuery中使用?3個輸入字段的格式JSON

這裏是我現在的腳本。格式化json數據的最佳方式是什麼,這樣我可以填寫3個輸入字段?

$('input#btnGet').click(function() { 
    $.ajax({ 
     url: 'generate_json.aspx', 
     type: 'POST', 
     data: { intPageID:1 }, 
     success: function(results) { 
      $('input#id').val('id goes here'); 
      $('input#heading').val('heading goes here'); 
      $('input#content').val('content goes here'); 
     } 
    }); 
}); 

回答

3

如果添加dataType: 'json'到您的選擇,然後直接jQuery的解碼JSON轉換爲JavaScript對象:

「JSON」:評估響應爲JSON並返回一個JavaScript對象。在jQuery 1.4中,JSON數據以嚴格的方式進行解析;任何格式不正確的JSON都會被拒絕並引發解析錯誤。 (有關正確的JSON格式的詳細信息,請參閱json.org。)

假設你收到/ JSON的產生是

'{"id": 6, "heading": "heading", "content": "content"}' 

你的代碼應該是這樣的:

$.ajax({ 
    url: 'generate_json.aspx', 
    type: 'POST', 
    data: { intPageID:1 }, 
    dataType: 'json', 
    success: function(results) { 
     $('#id').val(results.id); 
     $('#heading').val(results.heading); 
     $('#content').val(results.content); 
    } 
}); 

如果你的JSON字符串代表一個數組,而當然results將是一個JavaScript數組,你必須遍歷它。


Btw。由於ID是唯一的,因此不需要在選擇器中預先添加標籤名稱。

+0

並與ID的它實際上是壞添加標籤名,有明確的內置函數在DOM中,通過ID獲取元素是最快的方式,jQuery可以使用它們與純ID選擇器:) – 2011-02-04 13:16:18

1

只需指定dataType爲「json」即可設置!

$.ajax({ 
    url: 'generate_json.aspx', 
    type: 'POST', 
    data: { intPageID:1 }, 
    dataType: "json", 
    success: function(result){$("#heading").val(result.heading)} 
    }); 
+0

這不會回答他的問題, Ÿ如何解析它在客戶端上;) – 2011-02-04 13:17:19

1

如果服務器返回此:

{ 
    "id": "1", 
    "heading": "yadayada" 
    "content": "foobar" 
} 

你可以用它喜歡:

success: function(results) { 
    $('input#id').val(results.id); 
    $('input#heading').val(results.heading); 
    $('input#content').val(results.content); 
}