【问题标题】:Manually creating JSON data手动创建 JSON 数据
【发布时间】:2014-12-04 18:01:40
【问题描述】:

我有以下代码:

public ActionResult AjaxHandler(jQueryDataTableParamModel param)
{

    /* PROBLEM */
    var allCompanies = DataRepository.GetCompanies();
    /* PROBLEM */

    var result = from c in allCompanies
        select new[] { c.Name, c.Address, c.Town };

    return Json(new { sEcho = param.sEcho,
                     iTotalRecords = allCompanies.Count(),
                     iTotalDisplayRecords = allCompanies.Count(),
                     aaData = result
        },
                JsonRequestBehavior.AllowGet);
}

我需要帮助写作

DataRepositry.GetCompanies();

标记为问题的部分可以帮助我编写一个函数,该函数返回适合使代码运行的数据。我知道它应该是某种 Json。但我不知道如何使它工作。

DataRepository.GetCompanies() <- could be any function, I just need to make it work

我试图这样做:

      var allCompanies = new List<string[]>() {
                new string[] {"1", "Microsoft", "Redmond", "USA"},
                new string[] {"2", "Google", "Mountain View", "USA"},
                new string[] {"3", "Gowi", "Pancevo", "Serbia"}
                };

        var newJson = JsonConvert.SerializeObject(allCompanies);

        var allCompanies = newJson;

那没用。

解释:

这是一个更大的项目的一部分,基本上它假设填充 DataTable,我得到的确切错误。这是一个附加的屏幕。

【问题讨论】:

  • 您尝试时遇到了什么错误?
  • 解释“没用”???您是否遇到异常、HTTP 错误、客户端错误?

标签: asp.net asp.net-mvc json serialization


【解决方案1】:

尝试像这样创建 AllCompanies:

var allCompanies = new[]  { 
  new { Name="XYZ", Country="USA", ID="1"  },
  new { Name="ABC", Country="USA", ID="2"  }, 
  new { Name="DEF", Country="MX",  ID="3"  }
  };

我的猜测是,如果没有属性名称,而是使用一堆字符串,就无法使用 {key:value} 对生成正确的 JSON 对象

更好的是,像这样创建一个 Company 类:

public class Company
{
   public string Name;
   public string Country;
   public string ID;
}

【讨论】:

  • 这太棒了。非常感谢!我会在 4 分钟内接受你的回答。正是我需要的。
猜你喜欢
  • 1970-01-01
  • 2020-01-17
  • 2017-06-16
  • 2014-05-17
  • 1970-01-01
  • 2018-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多