我有一个IList<Foo>
,我正在尝试将其序列化为Json
,但结果中不包含字段名称。因此,我正在尝试创建一个匿名对象,我将其传递给Json序列化方法。
Foo定义为(伪代码): -
public class Foo
{
public int X;
public int Y;
}
当我以Json的身份返回时......
return Json(foos);
结果就像
... [{"X":1,"Y":2},{"X":3,"Y":4}...]
我不希望X和Y在那里。所以我在追求..
... [{1,2},{3,4}...]
所以我试图做以下事情(这不起作用)
(from p in foos
select new p.X + "," + p.Y).ToArray()
或
(from p in foos
select new string(p.X+ "," + p.Y)).ToArray()
但无济于事(不编译)。
有人可以帮忙吗?
答案 0 :(得分:7)
(from p in foos
select String.Format("{{{0}, {1}}}", p.X, p.Y)).ToArray()
答案 1 :(得分:5)
foos.Select(p=>p.X + "," + p.Y)
或者如果您更喜欢Linq语法:
(from p in foos
select p.X + "," + p.Y).ToArray()
答案 2 :(得分:1)
JSON是成员序列化程序,并使用名称。如果您不想要名称,请不要使用JSON。或许只是StringBuilder
,那么?
StringBuilder sb = new StringBuilder("[");
foreach(var foo in items) {
sb.Append('{').Append(foo.X).Append(',').Append(foo.Y).Append("},");
}
sb[sb.Length - 1] = ']';
string s = sb.ToString();
答案 3 :(得分:0)
为什么不自己创建JSON字符串,这样您就可以完全控制它的设置方式而不是使用序列化方法。