Sie haben also gerade json und Sie versuchen, es in ein Objekt zu konvertieren, um einige sinnvolle Werte zu erhalten?
I persönlich bevorzuge Arbeiten mit Klassen, wo ich kann. Ich werde meinen rohen JSON in einen JSON to C# Converter werfen. Ich mag JsonUtils persönlich. (Ich habe keine Zugehörigkeit, nur einen großen kostenlosen Service.) Es gibt einige andere da draußen, aber es scheint am robustesten zu sein.
Wenn Sie Ihre RAW-json in dort werfen, erhalten Sie die folgenden Klassen:
public class MyClassList
{
public int Id { get; set; }
public string Amount { get; set; }
}
public class ReturnValues
{
public int ErrorCode { get; set; }
public string ErrorDescription { get; set; }
}
public class GetMyClassListResult
{
public IList<MyClassList> MyClassList { get; set; }
public ReturnValues ReturnValues { get; set; }
}
public class Example
{
public GetMyClassListResult GetMyClassListResult { get; set; }
}
In Ordnung. Jetzt wo wir unsere Modelle haben, können wir den JSON deserialisieren. Die beliebteste Bibliothek zur Manipulation von JSON ist Newtonsoft.Json, die unter NuGet oder direkt zum Download verfügbar ist.
Sie müssen einen Verweis auf diese DLL hinzufügen, wenn Sie sie herunterladen möchten; Nuget wird es automatisch referenzieren, wenn Sie es installieren.
An der Spitze der Klasse Datei, werden Sie
using Newtonsoft.Json;
zusammen mit Ihren anderen using
Anweisungen hinzufügen müssen.
In Ihrer Methode rufen Sie JsonConvert.Deserialize<List<Example>>(json)
, die Ihnen Ihre Sammlung in POCOs geben wird.
Da nur ein Objekt in der Sammlung vorhanden ist, können Sie die Sammlung .First()
aufrufen und dann über die Eigenschaften Id
und Amount
auf die beiden Werte zugreifen. Sie müssen sicherstellen, dass System.Linq
in Ihren using
Aussagen auch ist.
Voll Code:
var json = @"{\"GetMyClassListResult\":{\"MyClassList\":[{\"Id\":1,\"Amount\":\"5,00\"},{\"Id\":2,\"Amount\":\"10,00\"},{\"Id\":3,\"Amount\":\"20,00\"},{\"Id\":4,\"Amount\":\"25,00\"}],\"ReturnValues\":{\"ErrorCode\":1,\"ErrorDescription\":\"Successful\"}}}";
var collection = JsonConvert.Deserialize<List<Example>>(json);
var x = collection.First();
var amount = x.Amount;
var id = x.Amount;
Sie sind dann frei, mit diesen Variablen zu manipulieren oder zu arbeiten, wie Sie für richtig halten. :)
Sie könnten damit beginnen, Ihren Json zu formatieren, damit wir ihn lesen können. –