C#序列化不带属性名的JSON

时间:2018-11-09 15:20:24

标签: c# json serialization

也许这是以前问过的,但是我不知道如何查找我的问题。 我正在使用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字符串时,所有属性均为“ null”。

1 个答案:

答案 0 :(得分:1)

您的课程正确。您的JSON是一个对象数组。

尝试

DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(ActivationResponseWooSl[]));
var arr = (ActivationResponseWooSl[])js.ReadObject(ms);