ServiceStack JSON根名称

时间:2012-09-26 20:13:04

标签: c# json servicestack

我已经启动了REST hello world服务并运行ServiceStack。

它当前从一个看起来像的测试对象返回JSON:

{"Name":"Value"}

对象很简单:

public class TestResponse { public string Name { get; set; } }

有没有人可以如何装饰类来强制JSON中的根名称,所以它看起来像这样:

 { root:{"Name":"Value"} }

感谢。

1 个答案:

答案 0 :(得分:2)

返回的JSON与您填充的DTO的确切形状(即首先是DTO的角色)相匹配。 因此,您应该更改DTO以表示您想要的确切形状,例如

public class TestResponse {
    public TestRoot Root { get; set; }
}
public class TestRoot {
    public string Name { get; set; }
}

然后你可以按照预期返回它:

return new TestResponse { Root = new TestRoot { Name = "Value" } };   

或者如果您愿意,也可以使用词典:

public class TestResponse {
    public TestResponse() {
       this.Root = new Dictionary<string,string>();
    }
    public Dictionary<string,string> Root { get; set; }
}

并将其返回:

return new TestResponse { Root = { { "Name", "Value" } } };