C # сериализует JSON без имени свойства - PullRequest
0 голосов
/ 09 ноября 2018

возможно, это где-то спрашивали раньше, но я не знаю, как искать мою проблему. Я использую WebAPI для проверки лицензий. Из этого API я получаю возвращаемую строку JSON в следующем формате.

string json = "[{"status":"error","status_code":"e002","message":"Invalid licence key"}]"

Это мой сериализатор

using (var ms = new MemoryStream(Encoding.Unicode.GetBytes(json)))
{
                DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(ActivationResponseWooSl));
                ActivationResponseWooSl ar = (ActivationResponseWooSl)js.ReadObject(ms);
}

Теперь мои вопросы: как должен выглядеть класс "ActivationResponseWooSl", чтобы сериализатор мог его преобразовать?

Любая помощь высоко ценится!

Пока это выглядит так (что не работает):

[DataContract]
public class ActivationResponseWooSl
{
    [DataMember(Name = "status")]
    public string Status { get; set; }

    [DataMember(Name = "status_code")]
    public string ErrorCode { get; set; }

    [DataMember(Name = "message")]
    public string ErrorMessage { get; set; }
}

Однако, когда я сериализую мою строку json, все свойства равны нулю.

1 Ответ

0 голосов
/ 09 ноября 2018

Ваш класс правильный.Ваш JSON - это массив объектов.

Попробуйте

DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(ActivationResponseWooSl[]));
var arr = (ActivationResponseWooSl[])js.ReadObject(ms);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...