通过REST API反序列化JSON对象(c#web api 2)

时间:2014-09-08 07:00:35

标签: c# json rest asp.net-web-api

我使用WebRequest将JSON对象发送到休息服务器。 ContentType设置为application / json

原始类被序列化为JSON字符串,而不是转换为字节的字符串(使用BlockCopy而不是使其成为unicode)并通过HTTP发送。

在服务器端,我修改了一个JContainer对象而不是字符串(可能是内容类型的b / c)

如何使用JSON.NET直接反序列化此对象?

我能够把它变成一个字符串,然后反序列化它,但是由于字符串不可读而导致一些错误我无法跟踪(来自unicode转换的大量\ 0)。 p>

我的问题是 - 我可以反序列化原始的JSON对象吗? 有没有办法将此对象转换为常规ASCII字符串?

public void Put(MyClass cls)
{
}

// I get nothing

public void Put(JContainer cls)
{
    string myjson = cls.ToString()
** Update: This string is the original JSON but in UNICODE.
** this text doesn't deserialized to the original class.

}

1 个答案:

答案 0 :(得分:0)

问题在于编码。 使用ASCII编码而不是Unicode解决了所有反序列化问题。 只需执行JContainer.ToString()并将其发送到Deserialize函数。