【问题标题】:Data in C# to JSONC# 中的数据到 JSON
【发布时间】:2015-05-18 23:21:33
【问题描述】:

我有一个部门列表,想在树视图中显示它们。我使用 C#、ASP.NET。我发现这个很酷的控件叫做 Treed http://bl.ocks.org/mbostock/raw/4339083/dd87a364df6d921740af7e5badef247665918919/ 但是它需要一个 JSON 文件。

从 ASP.net 实现这种 JSON 结构的最佳方法是什么? http://bl.ocks.org/mbostock/raw/4063550/flare.json

目前我将此数据存储为 DataTable。如果有任何其他收藏的解决方案,请在我对任何事情持开放态度时提出建议。

非常感谢您的帮助。

【问题讨论】:

标签: c# asp.net json


【解决方案1】:

首先,有几个内置的序列化程序。您可以使用 WCF DataContracts 和 DataContractJsonSerializer 来生成专供服务端点使用的 JSON 数据。如果您的应用程序在其服务架构中使用了大量 WCF,则此序列化程序应该很容易合并。

System.Web.Script.Serialization 中还有一个 JavaScriptSerializer 类;它有一个较少面向方面的自定义方案,如果序列化程序无法理解您的类(或者它的默认行为不是您想要的),则需要您定义一个自定义转换器类,但前提是您可以同时控制此 JSON 数据,因此理论上您可以调整客户端脚本以处理默认行为,总体而言,这可能是将对象转换为 JSON 的最简单方法。

最后,还有一个第三方库 JSON.NET,可在 http://www.newtonsoft.com/json 获得。这是相当不错;我已经在一些项目中使用它来获取 AJAX-y ScriptMethods 的 JSON 结果。它具有可用于对序列化行为进行小的自定义的属性,而无需 WCF DataContracts 的全部权重。

【讨论】:

    【解决方案2】:

    你考虑过这个例子吗:

    Product product = new Product();
    product.Name = "Apple";
    product.Expiry = new DateTime(2008, 12, 28);
    product.Sizes = new string[] { "Small" };
    
    string json = JsonConvert.SerializeObject(product);
    // {
    //   "Name": "Apple",
    //   "Expiry": "2008-12-28T00:00:00",
    //   "Sizes": [
    //     "Small"
    //   ]
    // }
    

    以下是一些需要考虑的链接:

    此链接允许您使用 JSON 生成 c# 类:

    http://json2csharp.com/

    此链接支持 JSON 类

    http://www.json.net

    【讨论】:

      猜你喜欢
      • 2012-10-30
      • 2014-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      相关资源
      最近更新 更多