JSON kann nicht in Objekt deserialisiert werden, Array erforderlich?
Ich versuche, die eingehenden JSON-Elemente zu übernehmen und an Listbox-Elemente zu binden, aber Visual Studio teilt mir mit, dass ich ein Array und kein Objekt erstellen muss. Ich musste das noch nie machen ... Weiß jemand wie?
Mein RootObject:
public class RootObject
{
public string url { get; set; }
public string display { get; set; }
public List<string> genetics { get; set; }
public List<string> price { get; set; }
public List<string> brandMaker { get; set; }
public string form { get; set; }
public string dosornos { get; set; }
public string qty { get; set; }
public string mfg { get; set; }
public string mobURI { get; set; }
}
Hinweis: Genetik, Preis und BrandMaker geben nur einen Wert zurück, wie unten dargestellt:
"genetics": [
"typeophere"
],
"price": [
"$1400"
],
JSON DATEI / ANFRAGE GRUNDLEGENDE ERGEBNISSE:
[
{
"url": "N/A",
"display": "",
"genetics": [
"microogiz"
],
"price": [
"96.016"
],
"brandMaker": [
"Oshi Kunti Multikashi, Osaka, JP"
],
"form": "tangent",
"dosornos": "n/a",
"qty": "88G",
"mfg": "SelfMade Industries, USA Dist.",
"mobURI": "n/a"
}
]
Mein ursprünglicher Code:
// Get JSON via WEB
string ProviderURI = goURI;
webClient webClient = new WebClient();
webClient.DownloadStringCompleted += new
DownloadStringCompletedEventHandler(webClient_DownloadStringCompleted);
webClient.DownloadStringAsync(new Uri(ProviderURI));
void webClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error != null)
{
return;
}
var deserializedJSON = JsonConvert.DeserializeObject<RootObject>(e.Result);
lstBoxResults.ItemsSource = deserializedJSON; // or deserializedJSON.url.ToString();
}