我正在尝试使用具有非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 ContractResolver
在Newtonsoft.Json
中克服了此问题。如何使用ServiceStack.Text
完成此操作?
我不想用DataMember
属性来装饰我的dto类,因为这似乎是数据源的关注,而不是dto本身,因此应该由执行反序列化的代码来处理。
答案 0 :(得分:8)
查看JsConfig ServiceStack's JSON and text serializers支持的所有不同配置和自定义项,例如:
JsConfig.Init(new Config { TextCase = TextCase.SnakeCase });
应该做你想做的事。