我需要向我的Web API后端发出POST请求并检索&反序列化我从中获得的响应,以便我可以访问“用户”中返回的值。后端发送的对象。我成功地提出了请求并得到了答复。
但是响应包含反斜杠。我很困惑这个响应需要如何反序列化。我的代码如下:
这是我的POST请求
var request = (HttpWebRequest)WebRequest.Create("MY_SERVER_URL/api/createitem");
request.ContentType = "application/json";
request.Method = "POST";
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
{
//'data' is the object that contains the parameters
string json = new JavaScriptSerializer().Serialize(data);
streamWriter.Write(json);
}
var response = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(response.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
string responseString = result.ToString();
//responseString contains the response with back slashes
}
这是我得到的回复:
{\"$id\":\"1\",\"status\":\"200\",\"description\":\"Status OK\",\"user\":{\"$id\":\"2\",\"Id\":124200,\"Name\":\"Rown Doger\",\"Email\":\"rown@email.com\",\"Password\":123,\"DateJoined\":\"2016-10-28T20:20:50\",\"Picture\":\"\",\"AccessToken\":\"testtoken_3432\"}}
如何使用C#反序列化并分别检索状态,描述和用户对象,以便我可以访问用户对象中的值?
修改
来自后端的响应有效,因为它在Fiddler和Postman中正确显示。
答案 0 :(得分:0)
我访问了enter link description here,手动删除了所有斜杠并将其转换为对象
my-main-task
反序列化使用JavaScriptSerializer:
public class User
{
//public string __invalid_name__$id { get; set; }
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public int Password { get; set; }
public string DateJoined { get; set; }
public string Picture { get; set; }
public string AccessToken { get; set; }
}
public class RootObject
{
//public string __invalid_name__$id { get; set; }
public string status { get; set; }
public string description { get; set; }
public User user { get; set; }
}
这将反序列化,但你有两个特殊的字符属性,不会被转换,所以你必须评论它们并运行你的代码。