Javascript 如何在浏览器中处理Json.NET对象引用?

Javascript 如何在浏览器中处理Json.NET对象引用?,javascript,json.net,Javascript,Json.net,我有一个ASP.NETMVC站点,它有一个返回JSON的控制器操作。JSON是通过Newtonsoft的JSON.NET序列化的,带有 ' This is VB, even though it looks very C#-like. result = JsonConvert.SerializeObject( Data, Formatting.Indented, New JsonSerializerSettings With { .ReferenceLoopHa

我有一个ASP.NETMVC站点,它有一个返回JSON的控制器操作。JSON是通过Newtonsoft的JSON.NET序列化的,带有

' This is VB, even though it looks very C#-like.
result = 
JsonConvert.SerializeObject(
    Data, Formatting.Indented, 
    New JsonSerializerSettings With {
        .ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
        .PreserveReferencesHandling = PreserveReferencesHandling.Objects
    })
请注意.PreserveReferencesHandling=PreserveReferencesHandling.Objects

此序列化数据的使用者是浏览器中的javascript


那么,我如何才能让消费者javascript更好地处理JSON.NET生成的引用呢?我不必扫描整个对象层次结构来查找具有正确$id属性的对象,是吗?

首先,您不必手动将对象序列化为JSON。您可以像这样使用JsonResult:

public JsonResult GetResult()
{
    string myObject = "test";
    return Json(myObject, JsonRequestBehavior.AllowGet);
}
现在回答您的问题:在JavaScript中,您将获得整个JSON对象,从中得到您想要的更好的东西,就是在没有冗余数据的情况下发送您想要的东西。下面是一段JS代码:

$.get(URL, function (JSON) {
    ...                
});

JSON将是您在GetResult操作中发现的对象。

向我们展示生成的对象相似或相同:和。谢谢@dbc,这些链接让我走上了一条很好的道路。Josh Mouch正是我要找的。