2016-10-20 3 views
0

hatte ich meine Frage bearbeitet:WCF Deserialize JSON String

Wie kann ich die JSON-String deserialisieren unten zeigt:

"{\"acctId\": \"Test10001\",\"amount\": 200,\"currency\": \"USD\",\"Code\": \"Test\",\"serialNo\": \"1234566789asdsad0\"}" 

Bitte Anregung geben, wie kann ich die Daten erhalten, indem diese Methode verwenden oder andere empfohlene Methode.

+1

Setzen Sie Ihre volle Funktion frei – Aravind

+1

'res' ist JSON-String. Die Verwendung von 'HttpUtility.ParseQueryString (res);' ist hier falsch. Deserialize 'res' mit JSON-Serializer wie' JSON.NET' – AEonAX

+0

wenn diese andere Art der Deserialisierung ohne andere Bibliothek? –

Antwort

0

denke ich unten Code sollte Ihren Zweck dienen:

public class DeserializedData 
    { 
     public string acctId { get; set; } 
     public string amount { get; set; } 
     public string currency { get; set; } 
     public string Code { get; set; } 
     public string serialNo { get; set; } 
    }  

StreamReader reader = new StreamReader(streamdata); 
string res = reader.ReadToEnd(); 

Verwenden Dritten dlls wie Json.NET oder Restsharp:

1.) Mit Json.Net Json.NET

var result = JsonConvert.DeserializeObject<DeserializedData>(res); 

2.) Verwenden von Restsharp Restsharp

var jsonDeserializer = new RestSharp.Deserializers.JsonDeserializer(); 
var response = jsonDeserializer.Deserialize<DeserializedData>(res); 

Lassen Sie mich wissen, wenn es für Sie nicht funktioniert.

+0

Danke, das funktioniert. Du sparst meine Zeit, danke nochmal =) –

+0

Keine Sorge, Kumpel !! – Saket

+0

@set ist dein Fehler behoben? – Aravind

2

Wir schlagen Ihnen vor, StreamWriter wie unten zu verwenden. Mit dieser Funktion und Ihre String übergeben und zurückgeben den Strom, gibt Ihnen die gewünschten JSON Inhalt

public static Stream GenerateStreamFromString(string s) 
{ 
     MemoryStream stream = new MemoryStream(); 
     StreamWriter writer = new StreamWriter(stream); 
     writer.Write(s); 
     writer.Flush(); 
     stream.Position = 0; 
     return stream; 
} 
1

Die Nutzlast der POST-Anforderung im JSON-Format zu sein scheint, so dass Sie eine JSON-Parsing-Bibliothek verwenden sollten parse es, wie Json.NET. Dann würde schreiben Sie so etwas wie:

JsonConvert.DeserializeObject<YourRequestObject>(res) 
0

können Sie Json Zeichenfolge wie diese

dynamic stuff = JObject.Parse(res.ToString()); 

     string acctId= stuff.acctId; 

Aber die Antwortzeichenfolge Sie Parsen werden sollte JSon formatiert lesen.