反序列化特定的json字符串

时间:2014-07-15 12:24:50

标签: c# json json.net

我无法反序列化json字符串,因为根元素没有键名。只是一个数值。我使用Json.Net

{"41":{"entity_id":"41","status":"pending"},"42":{"entity_id":"42","status":"canceled"}}

这是来自Magento REST Api的回复。 我可以在xml中获得响应,但我也不能使用xml响应反序列化。两个不同的子元素中有两个date_item节点。

1 个答案:

答案 0 :(得分:-1)

您可以使用某些属性来帮助进行反序列化。例如:

[DataContract]
public class YourClass
{
    [DataMember(Name = "41")]
    public YourEntity Property41
    {
        get;
        set;
    }
}

[DataContract]    
public class Entity 
{
   [DataMember(Name = "entity_id")]
   public int EntityID { get; set; }

}

这些属性适用于默认的序列化程序:

    public static T DeserializeJson<T>(string objectInJson)
    {
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
        return (T)serializer.ReadObject(JsonSerializer.StringToStream(objectInJson));
    }

您可以使用DeserializeJson(jsonString)

调用它