2016-10-20 8 views
0

私は私の質問を編集していた:WCFデシリアライズJSON文字列

は、どのように私はJSON文字列は以下を示しデシリアライズすることができます

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

私は、このメソッドまたは他のを使用してデータを取得する方法の提案を教えてください推奨される方法。

+1

あなたのフル機能を公開 – Aravind

+1

'res'はJSON文字列です。したがって、ここでは 'HttpUtility.ParseQueryString(res);'の使い方が間違っています。 'JSON.NET'のようなJSONシリアライザを使って' res'を非直列化します – AEonAX

+0

他のライブラリを使わずに逆直列化する方法があるのならば? –

答えて

0

私はあなたの目的を果たす必要があるコードの下だと思う:Json.NETまたはRestsharpなどの

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(); 

使用サードパーティのDLLを:

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

Json.Net Json.NETを使用して

1) 2.)Restsharpを使用するRestsharp

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

あなたのために働かないかどうか教えてください。

+0

ありがとう、それは動作します。あなたは私の時間を保存する、ありがとう=) –

+0

心配しないで、仲間! – Saket

+0

@saketはあなたのバグを修正しましたか? – Aravind

2

StreamWriterを下記のように使用することをお勧めします。 この機能を使用してストリームをあなたの文字列を渡すと戻りあなたのコンテンツたいJSONを与えるであろう

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
あなたのPOSTリクエストのペイロードは、あなたがにJSONの構文解析ライブラリを使用する必要がありますので、JSON形式であるように思わ

それを解析します(例えば、Json.NET)。

JsonConvert.DeserializeObject<YourRequestObject>(res) 
0

あなたはこの

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

     string acctId= stuff.acctId; 

のようなJSON文字列を読み取ることができます。しかし、あなたがパースされ、応答文字列がフォーマットJSONする必要があります。そして、あなたのような何かを書くだろう。

関連する問題