2012-05-18 50 views
1

是否可以提供定製合同解析器somekind的到內置的JsonSerializer?ServiceStack定製合同解析器

響應數據被格式化爲這樣的:

{ 
    "name":"Rob Angelier" 
} 

我想設置的屬性是:名稱

的問題是:如何從駝峯反序列化到pascalcase符號?

希望你能幫助我出去!

回答

1

你可以得到name屬性之一:

string name = JsonObject.Parse(json)["name"]; 

否則,您可以創建相匹配的JSON反序列化到一個強類型的類,如:

class Contact { 
    public string Name { get; set; } 
} 
var contact = json.FromJson<Contact>(); 

在ServiceStack JSON測試套件,你可以找到multiple different ways來反序列化相同的東西。

+0

我知道如何序列化和反序列化。問題是我們如何從camelcase符號反序列化爲pascal符號。我們可以在JSON.net庫中使用所謂的自定義合約解析器,但是ServiceStack序列化器也可以這樣做嗎? –

+0

這裏有關於我在找什麼的更多信息:http://james.newtonking.com/projects/json/help/ContractResolver.html –

+0

反序列化不區分大小寫,因此您可以在Pascal/camelCase和vice之間進行反序列化-versa。 'JsConfig.EmitCamelCaseNames = TRUE;'發出,駝峯性能:)例如:https://github.com/ServiceStack/SocialBootstrapApi/blob/master/src/SocialBootstrapApi/App_Start/AppHost.cs#L94 – mythz