【问题标题】:How to deal with Json.NET object references in the browser? [duplicate]如何处理浏览器中的 Json.NET 对象引用? [复制]
【发布时间】:2016-10-20 07:41:03
【问题描述】:

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

【问题讨论】:

标签: javascript json.net


【解决方案1】:

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

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

现在回答您的问题:在 JavaScript 中,您将获得整个 JSON 对象,只需从中获取您想要的内容(最好只发送您想要的内容,而不需要冗余数据)。这是一段JS代码:

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

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

【讨论】:

    猜你喜欢
    • 2014-07-14
    • 1970-01-01
    • 2021-10-21
    • 2012-06-23
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多