手动创建JSON数据

时间:2014-12-04 18:01:40

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

我有以下代码:

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();

标记为PROBLEM的部分可以帮助我编写一个函数,该函数返回适合运行代码的数据。我知道它应该是某种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,我得到的确切错误。这是一个附加的屏幕。

1 个答案:

答案 0 :(得分: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对象

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

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