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

ror*_*ryf 7 .net serialization json servicestack

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

{
    "first_name": "Foo",
    "last_name": "Bar"
}
Run Code Online (Sandbox Code Playgroud)

我想将其反序列化为POCO:

public class MyDto
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我现在正在这样做:

var dto = JsonSerializer.DeserializeFromString<MyDto>(dtoData);
Run Code Online (Sandbox Code Playgroud)

但这不会识别属性名称.我以前在Newtonsoft.Json使用自定义时ContractResolver克服了这一点.应如何使用ServiceStack.Text

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

myt*_*thz 9

查看JsConfig,了解ServiceStack的JSON和文本序列化程序支持的所有不同配置和自定义,例如:

JsConfig.Init(new Config { TextCase = TextCase.SnakeCase });
Run Code Online (Sandbox Code Playgroud)

应该做你想做的.