2017-01-26 3 views
0

Я потребляя WebService и deserialising объекту так:Deserialise JSON в C#

var content = JsonConvert.DeserializeObject<Member>(result); 

Это JSON

{ 
    "CREATE": [ 
    { 
     "isValidMemberPassword": true, 
     "member_eid": 13 
    }], 
    "DATE": "2017-01-26 11:25:20" 
} 

Эти классы deserialise:

public class Member 
{ 
    public List<Create> Create { get; set; } 
    public string DATE { get; set; } 
} 

public class Create 
{ 
    public bool isValidMemberPassword { get; set; } 
    public int member_eid { get; set; } 
} 

Проблема заключается в том, что мой объект Create не создается с полученными значениями. Все значения: null. Объект Member создается правильно. Я нахожусь на C#.

+2

странно, работает для меня – Nico

+2

Попробуйте использовать общественный 'List СОЗДАТЬ {получить; задавать; } 'вместо' public List Создать {get; задавать; } '. Можете ли вы сказать мне, что это не работа? –

+0

Возможно, «Создать» - это ключевое слово? попробуйте использовать CREATE –

ответ

1

Прежде всего для преобразования JSON, ваши свойства должны быть равны со свойствами кода JSON. Если у вас есть проблемы с конверсией, вы можете использовать json2csharp.com.

Я вижу, что свойства кода JSON не соответствуют правилу формата (имена свойств в camelcase). Чтобы исправить это, вы можете использовать атрибут JsonProperty с первым параметром имени свойства JSON. Смотрите ниже код:

public class Member 
{ 
    [JsonProperty("CREATED")] 
    public List<Create> Created { get; set; } 

    [JsonProperty("DATE")] 
    public string Date { get; set; } 
} 

public class Create 
{ 
    [JsonProperty("isValidMemberPassword")] 
    public bool IsValidMemberPassword { get; set; } 

    [JsonProperty("member_eid")] 
    public int MemberEid { get; set; } 
} 
0

Пожалуйста, используйте ниже указанные классы

public class CREATE 
{ 
    public bool isValidMemberPassword { get; set; } 
    public int member_eid { get; set; } 
} 

public class RootObject 
{ 
    public List<CREATE> CREATE { get; set; } 
    public string DATE { get; set; } 
} 
+0

oO Hummm ... ммм ... – bruno

Смежные вопросы