j'ai un échantillon JSON comme ceci:Créer DataContract classe en C# de JSON ayant les clés générées dynamiquement
{"'1234xxxxxx'":[{"AttributeId":"1","AttributeName":"Brand","AttributeValue":""},{"AttributeId":"2","AttributeName":"Color","AttributeValue":"Red4"},{"AttributeId":"3","AttributeName":"Size","AttributeValue":"44"},{"AttributeId":"4","AttributeName":"Resolution","AttributeValue":"Full HD"}]}
J'ai créé une classe d'échantillon DataContract comme ceci:
[System.Runtime.Serialization.DataContract]
public class Rootobject
{
[System.Runtime.Serialization.DataMember]
public attr[] attrs { get; set; }
}
[System.Runtime.Serialization.DataContract]
public class attr
{
[System.Runtime.Serialization.DataMember]
public string AttributeId { get; set; }
[System.Runtime.Serialization.DataMember]
public string AttributeName { get; set; }
[System.Runtime.Serialization.DataMember]
public string AttributeValue { get; set; }
}
Maintenant, je veux pour accéder aux attributs en utilisant DataContractJsonSerializer et memorystream, mais le problème est que la clé '1234xxxxxx' dans mon json est générée dynamiquement à chaque fois. Alors, comment dois-je accéder aux attributs dans mon code C#?
'DataContractJsonSerializer' est-il une exigence pour vous? Vous ne pouvez pas utiliser Json.NET? –
Vous pouvez string.replace que deserialize. – Miguel
Ressemble à une copie de [désérialisation JSON de variable nommée paramètre à l'aide de DataContract] (https://stackoverflow.com/questions/33024768/json-deserialization-of-variable-named-parameter-using-datacontract/33027529#33027529). Ou juste sérialiser aa 'Dictionnaire>' en utilisant 'UseSimpleDIctionaryFormat' comme expliqué [ici] (https://stackoverflow.com/questions/4559991/any-way-to-make-datacontractjsonserializer-serialize-dictionaries-properly/27223290 # 27223290). –
dbc