我编辑了我的问题:
如何反序列化下面显示的JSON字符串:
"{\"acctId\": \"Test10001\",\"amount\": 200,\"currency\": \"USD\",\"Code\": \"Test\",\"serialNo\": \"1234566789asdsad0\"}"
请提供建议如何使用此方法或任何其他推荐方法获取数据。
答案 0 :(得分:2)
建议您使用StreamWriter
,如下所示。
使用此函数并传递您的字符串并返回一个Stream,它将为您提供所需的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 :(得分:1)
POST请求的有效负载似乎是JSON格式,因此您应该使用JSON解析库来解析它,例如Json.NET。然后你会写一些类似的东西:
JsonConvert.DeserializeObject<YourRequestObject>(res)
答案 2 :(得分:0)
你可以像这样阅读Json字符串
dynamic stuff = JObject.Parse(res.ToString());
string acctId= stuff.acctId;
但是你要解析的响应字符串应该是json格式的。
答案 3 :(得分:0)
我认为以下代码应该符合您的目的:
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);
如果它不适合你,请告诉我。