2017-01-26 16 views
0

парень, на работе использовали:Deserialize JSON, который был сериализовать Newtonsoft CamelCasePropertyNamesContractResolver

var s = new JsonSerializerSettings(); 
s.ContractResolver = new CamelCasePropertyNamesContractResolver(); 

Чтобы создать некоторые JSON, но теперь я должен десериализации в объекты, которые не используют верблюжье случай, без аннотации в (общие). Модели не используют корпус верблюда.

Он использует Javascript, поэтому для него не имеет большого значения, но я нахожусь на земле C#.

Есть ли «реверс» для CamelCasePropertyNamesContractResolver? Я не вижу способа сделать это без аннотаций.

+0

Если вы используете Json.NET для десериализации, то он должен просто работать, потому что код десериализации Json.NET делает несовместимое по регистру совпадение имени свойства JSON с именем свойства C#. У вас действительно есть случай, который не работает? Можете ли вы расширить свой вопрос в [mcve]? – dbc

+0

Он должен работать автоматически, тогда как если вы не используете атрибут свойства, например ['JsonProperty'] (http://www.newtonsoft.com/json/help/html/T_Newtonsoft_Json_Serialization_JsonProperty.htm) –

ответ

0

Input Json выглядит "ДатаСкоп": { "тип": 4, "ClientId": 2, "Areaid": 1, "areaName": "Тренажер Area", "UnitID": 1, "UnitName": "Сим-A0B0", "wheelPosition": 1 }, и т.д., и т.д.

Целевой объект как:

public class DataScope 
{ 
    public int Type { get; set; } 
    public int ClientId { get; set; } 
    public string ClientName { get; set; } 
    etc 

Мохит правильно, это я нечувствительный к регистру. Проблема оказалась в том, что я забыл квантор public на моих членах.