JavaScript-从使用Json.Net创建的JSON对象提取数据 - c#

我有一个服务器端方法,用于将数据返回给用户。数据存储在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中的样子:

这就是浏览器(重要的是FF 32)接收到的内容:

Firebug

如果需要,我将发布更多信息。

参考方案

首先解析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);
                    });

                 }

    });

Javascript和Python JSON-未定义变量 - javascript

例如,如果您具有以下JSON对象(删除python的分号):values = { a: 1, b: { c: 2, d: { e: 3 } }, f: 4, g: 5 }; 如果您尝试在JS中打印values,它将正常工作。但是在Python中,它将返回错误NameError: name 'a' is not defined,这意味着未定…

PHP json_encode数组到javascript关联数组 - javascript

我有一些从PHP中读取的mysqli列。它正在完美地获取和回显。$results = mysqli_fetch_assoc(mysqli_query($conn, $querystring)); echo json_encode($results); //$results = {"title":"Sea Shells"…

如何在JQuery中操作JSONArray - javascript

我有一个php函数,它以JSON返回此代码{"0":{"title":"Dans l\u2019appartement"},"1":{"title":"A l\u2019a\u00e9roport - D\u00e9part de B\u00e9at…

Javascript-从当前网址中删除查询字符串 - javascript

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…

编码JSON数据以保留json格式 - javascript

由于JSON值是动态生成的,并且其中的值是基于用户输入的,因此,如果用户在字符串中输入了不可接受的字符(如"),则会使json无效。就像是:{ "tag" : "demo", "value": "user " input" } 有没有一种方法可以编码或转义JS…