我已经编辑我的问题:WCF反序列化JSON字符串
我如何反序列化下面的JSON字符串显示:
"{\"acctId\": \"Test10001\",\"amount\": 200,\"currency\": \"USD\",\"Code\": \"Test\",\"serialNo\": \"1234566789asdsad0\"}"
请使用此方法或任何其他给建议,我怎样才能得到数据推荐方法。
我已经编辑我的问题:WCF反序列化JSON字符串
我如何反序列化下面的JSON字符串显示:
"{\"acctId\": \"Test10001\",\"amount\": 200,\"currency\": \"USD\",\"Code\": \"Test\",\"serialNo\": \"1234566789asdsad0\"}"
请使用此方法或任何其他给建议,我怎样才能得到数据推荐方法。
我想下面的代码应该成为你的目的:
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像Json.NET或Restsharp:
1)使用Json.Net Json.NET
var result = JsonConvert.DeserializeObject<DeserializedData>(res);
2.)使用Restsharp Restsharp
var jsonDeserializer = new RestSharp.Deserializers.JsonDeserializer();
var response = jsonDeserializer.Deserialize<DeserializedData>(res);
让我知道,如果它不适合你。
建议您使用如下所示的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;
}
您的POST请求的有效载荷似乎是JSON格式,所以你应该使用JSON解析库解析它,如Json.NET。然后你会写是这样的:
JsonConvert.DeserializeObject<YourRequestObject>(res)
您可以阅读JSON字符串这样
dynamic stuff = JObject.Parse(res.ToString());
string acctId= stuff.acctId;
但你解析应该JSON格式的响应字符串。
暴露你的全部功能 – Aravind
'res'是JSON字符串。所以在这里使用'HttpUtility.ParseQueryString(res);'是错误的。使用JSON序列化器反序列化'res'如'JSON.NET' – AEonAX
如果使用其他方式反序列化而不使用其他库? –