我有以下json输出(忽略转义字符)
"{\"sEcho\":1,\"iTotalRecords\":10,\"iTotalDisplayRecords\":10,\"aaData\":[{\"Job\":\"developer\",\"Name\":\"kurt\"},{\"Job\":\"plumber\",\"Name\":\"john\"}]}"
我从
获得Person person = new Person();
person.Name = "kurt";
person.Job = "developer";
Person reps2 = new Person();
reps2.Name = "john";
reps2.Job = "plumber";
aa[0] = person;
aa[1] = reps2;
var o = new
{
sEcho = 1,
iTotalRecords = 10,
iTotalDisplayRecords = 10,
aaData = aa
};
string d = JsonConvert.SerializeObject(o);
我需要的是什么;
{"sEcho":1,"iTotalRecords":10,"iTotalDisplayRecords":10,"aaData":["developer","kurt"],["plumber","john"]]
有人得到了一个漂亮的c#例程,我可以传递任何类型的对象(例如Person,Car,Widget等)并且它会转换它,即删除对象字段,花括号等,或者在Json上有一些格式化选项我无法看到这样做。
我需要这样做的原因是我可以使用www.datatables.net中的数据表,它希望以这种格式使用
感谢
答案 0 :(得分:1)
我的猜测是,您必须为每个Person创建一个List,而不是Person对象,将Person.Job作为索引0,将Person.Name作为索引1。
List personList = new List<string>();
personList.add("developer");
personList.add("kurt");
List reps2List = new List<string>();
reps2List.add("plumber");
reps2List.add("john");
aa[0] = personList;
aa[1] = reps2List;
答案 1 :(得分:0)
不确定“对象字段”是什么意思,但这里有一个如何取出花括号的例子......
public static string MakeJsonLikeStr(object o)
{
string json = JsonConvert.SerializeObject(o);
return json.Replace("{", "").Replace("}", "");
}