如何将字符串(json)转换为另一个字符串

时间:2009-11-04 00:50:05

标签: c# json

我有以下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中的数据表,它希望以这种格式使用

感谢

2 个答案:

答案 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("}", "");
}