Je ne sais pas si c'est moi ou le JSON que je reçois. Quoi qu'il en soit, je lisais cet autre article que je pensais était pertinent, mais aucune idée de ce que les gars parlait quand il a compris ce qu'il fallait pour more json c# issuesException lors de l'analyse JSON avec DataContractJsonSerializer
ici est un échantillon du JSON Je reçois maintenant
{
"totalResult": 2,
"merchants": {
"1718167": {
"merchantRank": "29",
"merchantName": "bob the builders factory",
"merchantSlogan": "if he can't fix it we can",
"merchantBdesc": "",
"merchantLogo": "pic1.gif",
"merchantLink": "http:\/\/www.randomlink.com\/",
"merchantAddress": "place
street St
area
city
1111",
"merchantLat": "-15.9935425",
"merchantLng": "58.0836955",
"merchantGeoLevel": "st",
"merchantDistance": "0.00",
"merchantCategories": "builder",
"merchantEmail": "",
"merchantUrl": "http:\/\/www.randomlink.com\/",
"merchantPhone": "",
"merchantMobile": "",
"merchantSrc": "AJF"
},
"113711": {
"merchantRank": "229",
"merchantName": "A A A Builders",
"merchantSlogan": "",
"merchantBdesc": "",
"merchantLogo": "pic26.gif",
"merchantLink": "http:\/\/www.randomlink.com\/",
"merchantAddress": "",
"merchantLat": "",
"merchantLng": "",
"merchantGeoLevel": "",
"merchantDistance": "0.00",
"merchantCategories": "Builder",
"merchantEmail": "[email protected]",
"merchantUrl": "http:\/\/randomlink.com",
"merchantPhone": "",
"merchantMobile": "",
"merchantSrc": "GHF"
}
}
}
J'ai réduit le nombre de résultats, de toute façon, alors j'essayais de construire les contrats de données pour cela et je suis tombé sur un problème que j'avais précédemment, où une supercherie futée m'a donné les résultats que je avoir besoin. Cependant, cette fois, c'est différent ...
En utilisant le [DataContract] je peux obtenir le totalResult, cependant, pour obtenir des marchands, je continue à recevoir des erreurs ... et je crois que parce que le "113711", et le "113711" sont dynamiques cela provoque un problème pour créer un modèle de données. Alors j'ai pensé que peut-être un dictionnaire résoudrait ce problème. Cependant, chaque fois que je l'essaie, j'ai des erreurs !!
Voici ce que j'ai essayé d'utiliser:
[DataContract]
public class result
{
[DataMember(Name = "totalResult")]
public string totalResult { get; set; }
[DataMember(Name = "merchants")]
public Dictionary<string, metchant_info> merchants { get; set; }
}
[DataContract]
public class metchant_info
{
[DataMember(Name = "merchantRank")]
public string merchantRank;
[DataMember(Name = "merchantName")]
public string merchantName;
[DataMember(Name = "merchantSlogan")]
public string merchantSlogan;
[DataMember(Name = "merchantBdesc")]
public string merchantBdesc;
[DataMember(Name = "merchantLogo")]
public string merchantLogo;
[DataMember(Name = "merchantLink")]
public string merchantLink;
[DataMember(Name = "merchantAddress")]
public string merchantAddress;
[DataMember(Name = "merchantLat")]
public string merchantLat;
[DataMember(Name = "merchantLng")]
public string merchantLng;
[DataMember(Name = "merchantGeoLevel")]
public string merchantGeoLevel;
[DataMember(Name = "merchantDistance")]
public string merchantDistance;
[DataMember(Name = "merchantCategories")]
public string merchantCategories;
[DataMember(Name = "merchantEmail")]
public string merchantEmail;
[DataMember(Name = "merchantUrl")]
public string merchantUrl;
[DataMember(Name = "merchantPhone")]
public string merchantPhone;
[DataMember(Name = "merchantMobile")]
public string merchantMobile;
[DataMember(Name = "merchantSrc")]
public string merchantSrc;
}
et voici le code derrière ...
try
{
Stream responseStream = e.Result;
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(result));
result response = (result)ser.ReadObject(responseStream);
}
catch (Exception ex)
{
return;
}
L'erreur que je reçois est actuellement:
"Could not evaluate expression"
si vous voulez la trace de la pile, je la posterai, mais c'est une assez grande quantité d'informations inutiles ... Aussi, si vous changez le datame Marchands mber à une chaîne, vous verrez l'erreur suivante:
"System.Collections.Generic.Dictionary`2[System.String,System.Object]"
Alors ... des idées?
En ce qui concerne - "System.Collections.Generic.Dictionary'2 [System.String, System.Object]" où est le reste de cette erreur? –
Veuillez utiliser un meilleur nom pour votre demande – Tarion
@ Stuart.Sklinar c'est ce qui est retourné dans la chaîne, il n'y a pas d'autres informations – Ghostfire