【问题标题】:Create JSon array from code behind file从文件后面的代码创建 JSON 数组
【发布时间】:2012-01-26 12:12:59
【问题描述】:

如何使用 asp.net、c# 创建如下所示的数组列表。我可以使用 JsonTextWriter 创建这样的数组,但不想在我的解决方案中添加任何其他 dll。

  [{ "id": "slide-img-1", "client": "nature beauty", "desc": "nature beauty photography" },
  { "id": "slide-img-2", "client": "nature beauty", "desc": "add your description here" },
  { "id": "slide-img-3", "client": "nature beauty", "desc": "add your description here" },
  { "id": "slide-img-4", "client": "nature beauty", "desc": "add your description here" },
  { "id": "slide-img-5", "client": "nature beauty", "desc": "add your description here" },
  { "id": "slide-img-6", "client": "nature beauty", "desc": "add your description here" },
  { "id": "slide-img-7", "client": "nature beauty", "desc": "add your description here"}];

谢谢,

阿什

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-2 asp.net-ajax


    【解决方案1】:

    你可以使用a JavaScriptSerializer:

    假设您的数组中的实体类似于:

    public class Entity 
    {
      public string id { get; set; }
      public string client { get; set; }
      public string desc {get; set; }
    
      [ScriptIgnore]
      public string PropertyThatIsIgnored { get;set; }
    }
    

    那么它可以像这样使用:

    Entity[] entities = ...;
    JavaScriptSerializer serializer = new JavaScriptSerializer();
    string json = serializer.Serialize(entities);
    

    或者,如果需要更复杂的序列化,您可以考虑使用a DataContractJsonSerializer,因为它允许more extensibility when serializing / deserializing

    【讨论】:

    • 我有 List 我有多个变量。我只想拥有 id、client 和 desc。
    • @ashish.chotalia 我已经更新了我的答案以显示如何忽略属性,但是如果您想更改属性名称,我建议使用DataContractJsonSerializer
    • 是的,这行得通。你能告诉我如何自动生成 id 吗?
    • @ashish.chotalia 请为此提出一个单独的 SO 问题,需要更多信息 - 您希望在什么时候生成 id,如何将其映射回您的实体等。
    【解决方案2】:

    使用 .NET 框架自带的JavaScriptSerializer 类。

    看看here

    var js = new JavaScriptSerializer();
    string myJson = js.Serialize(new string[] {"A", "B", "C"});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-11
      • 2013-03-18
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 2019-04-09
      • 2016-06-24
      • 2018-04-18
      相关资源
      最近更新 更多