これが私なのか、取得している JSON なのかわかりません。とにかく、私は関連性があると思ったこの他の記事を読んでいましたが、json c#の問題を解決するために必要なことを彼が理解したときに、彼らが何について話しているのかわかりませんでした
ここに私が今得ているJSONのサンプルがあります
{
"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": "0123456789",
"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": "here@randomlink.com",
"merchantUrl": "http:\/\/randomlink.com",
"merchantPhone": "0123456789",
"merchantMobile": "",
"merchantSrc": "GHF"
}
}
}
とにかく、正気のために結果の数を減らしたので、このためのデータ コントラクトを構築しようとしましたが、以前に発生した問題に遭遇しました。しかし、今回は違います...
[DataContract] を使用して totalResult を取得できますが、マーチャントを取得するためにエラーが発生し続けます...「113711」と「113711」は動的であるため、データモデルの作成に問題が発生すると思います。ですから、辞書があればこの問題は解決するのではないかと考えました。しかし、私はそれを試みるたびにエラーが発生します!!
これが私が使用しようとしたものです:
[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;
}
これがコードビハインドです...
try
{
Stream responseStream = e.Result;
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(result));
result response = (result)ser.ReadObject(responseStream);
}
catch (Exception ex)
{
return;
}
現在発生しているエラーは次のとおりです。
"Could not evaluate expression"
スタックトレースが必要な場合は投稿しますが、かなり大量の役に立たない情報です...また、データメンバー Merchants を文字列に変更すると、次のエラーが表示されます。
"System.Collections.Generic.Dictionary`2[System.String,System.Object]"
それで... 何か考えはありますか?