簡體   English   中英

JavaScript-從使用Json.Net創建的JSON對象提取數據

[英]JavaScript - extracting data from a JSON object created with Json.Net

我有一個服務器端方法,用於將數據返回給用戶。 數據存儲在SQL Server數據庫中,並使用EF 6進行映射。使用ID值從數據庫中提取數據后,隨后將使用Json.NET框架對對象進行序列化。 該對象按原樣使用,而不過濾掉對其他表的引用。 因此,我不得不使用“ PreserveReferencesHandling”選項。 在客戶端,使用AJAX調用該方法。 我在從對象(客戶端)提取數據時遇到麻煩,該對象確實已序列化並按預期傳遞給瀏覽器。

服務器端方法:

[WebMethod]
public static string ContactData(long id)
{
    IService<Contact> contactService = new ContactService();
    Contact contactEdit = contactService.GetById(id);

    string str = JsonConvert.SerializeObject(contactEdit, new JsonSerializerSettings
    {
        PreserveReferencesHandling = PreserveReferencesHandling.Objects
    });

    return str;
}

客戶端功能(重要部分):

$.ajax({
    type: "POST",
    url: "Contacts.aspx/ContactData",
    data: JSON.stringify({ id: contactId }), // id by which I am receiving the object
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (contact) {
        $("#tbFirstName").val(contact.d[0].Contact.first_name); // I've tried various combinations to no avail
                },
});

這是JSON對象(測試目的數據)在Visual Studio的JSON Visualizer中的樣子:

JSON可視化工具

這就是瀏覽器(重要的是FF 32)接收到的內容:

螢火蟲

如果需要,我將發布更多信息。

首先解析json,然后再處理它。 並使用jquery每個函數遍歷它。

    $.ajax({
        type: "POST",
        url: "Contacts.aspx/ContactData",
        data: JSON.stringify({ id: contactId }), // id by which I am receiving the object
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (contact)
                {
                    var contact=jQuery.parseJSON(contact);
                    $.each(contact, function(i, item) {
                        alert(i + " ==> "+  item.first_name);
                    });

                 }

    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM