json.net需要将我的类属性转换为

时间:2012-02-08 15:12:01

标签: .net json

我有以下两个班级。

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完成吗?

2 个答案:

答案 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);