如何在反序列化时配置ServiceStack.Text JsonSerializer属性名称

时间:2013-02-11 12:29:15

标签: .net json serialization servicestack

我正在尝试使用具有非C#属性名称约定的ServiceStack.Text库来反序列化JSON数据,特别是如下所示的蛇案例:

{
    "first_name": "Foo",
    "last_name": "Bar"
}

我想将其反序列化为POCO:

public class MyDto
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

我目前正在这样做:

var dto = JsonSerializer.DeserializeFromString<MyDto>(dtoData);

但这不会识别属性名称。我之前使用custom ContractResolverNewtonsoft.Json中克服了此问题。如何使用ServiceStack.Text完成此操作?

我不想用DataMember属性来装饰我的dto类,因为这似乎是数据源的关注,而不是dto本身,因此应该由执行反序列化的代码来处理。

1 个答案:

答案 0 :(得分:8)

查看JsConfig ServiceStack's JSON and text serializers支持的所有不同配置和自定义项,例如:

JsConfig.Init(new Config { TextCase = TextCase.SnakeCase });

应该做你想做的事。