1

How do I deserialize this string that I sent as a json object in asp.net webservice.

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

1 回答 1

1

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

 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;
 }

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

RequestDTO requestDTO = JsonHelper.JsonDeserialize<RequestDTO>(jsonString);
于 2013-05-30T03:15:02.323 回答