我有以下两个班级。
public class Foo
{
public Bar Args { get; set; }
public Foo()
{
Args = new Bar();
}
}
public class Bar
{
public string Name { get; set; }
public int Age { get; set; }
}
使用时:
var foo = new Foo();
foo.Args.Name = "Mikael";
foo.Args.Age = 12;
string o = JsonConvert.SerializeObject(foo);
Console.WriteLine(o);
我得到以下json:
{"Args":{"Name":"Mikael","Age":12}}
我觉得这有点正确...但另一端我发送它以期望Args是一个数组,所以它需要看起来像这样:
{"Args":[{"Name":"Mikael","Age":12}]}
否则它会将Args视为单个对象而不是数组。
可以使用json.net完成吗?
答案 0 :(得分:1)
只需将Args
属性更改为Bar
:
public class Foo
{
public Bar[] Args { get; set; }
}
var foo = new Foo();
foo.Args = new Bar[] { new Bar {Name = "Mikael", Age = 12}};
string o = JsonConvert.SerializeObject(foo);
Console.WriteLine(o);
答案 1 :(得分:1)
public class FooWrapper
{
private Foo myfoo;
public Bar[] Args { get {
Bar[] bar=new Bar[1]();
bar[0]=myfoo.Bar;
return bar;
}}
public FooWrapper(Foo foo)
{
myfoo=foo;
}
}
var foo = new Foo();
foo.Args.Name = "Mikael";
foo.Args.Age = 12;
string o = JsonConvert.SerializeObject(new FooWrapper(foo));
Console.WriteLine(o);