gpt4 book ai didi

android - 如何反序列化我发送到我的网络服务的数据?

转载 作者:行者123 更新时间:2023-11-30 03:34:34 27 4
gpt4 key购买 nike

如何反序列化我在 asp.net webservice 中作为 json 对象发送的字符串。

HttpClient client = new DefaultHttpClient();  

HttpPost post = new HttpPost("http://server/NCO/webservice.asmx/GetNRIC");

post.setHeader("Content-type", "application/json");

post.setHeader("Accept", "application/json");

JSONObject obj = new JSONObject();

obj.put("ic", "s1111111b");

post.setEntity(new StringEntity(obj.toString(), "UTF-8"));

HttpResponse response = client.execute(post);

最佳答案

您将需要一个包含如下方法的实用程序类。

 public static T JsonDeserialize<T> (string jsonString)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
T obj = (T)ser.ReadObject(ms);
return obj;
}

查看 this link更多细节。无论如何,如果您在两端都使用数据传输对象 (DTO),您会发现这种序列化和反序列化场景更容易。这样您就不必从 Android 端手动安排 JSON 字符串。为此,您可能还需要 Android 端的 JacksonMapper 将 DTO 直接转换为字符串。从 ASP.NET 方面来看,即使您可以拥有相同的实体类,因此反序列化变得更容易

RequestDTO requestDTO = JsonHelper.JsonDeserialize<RequestDTO>(jsonString);

关于android - 如何反序列化我发送到我的网络服务的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16826636/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com