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

时间:2016-10-20 07:41:04

标签: javascript json.net

我有一个ASP.NET MVC站点,其控制器操作正在返回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属性的对象,是吗?

1 个答案:

答案 0 :(得分:-3)

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

public JsonResult GetResult()
{
    string myObject = "test";
    return Json(myObject, JsonRequestBehavior.AllowGet);
}

现在回答你的问题:在JavaScript中你将获得整个JSON对象,只需从中得到你想要的东西(更好的是只发送你想要的没有冗余数据)。这是一段JS代码:

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

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