Asp.net DataContractJsonSerializer ReadObject()返回空值

Asp.net DataContractJsonSerializer ReadObject()返回空值,asp.net,.net,json,Asp.net,.net,Json,我正在尝试反序列化JSON数据,以便将这些值插入数据库,但我在sts.text中不断得到空值。有人能帮忙吗?谢谢 这是我的数据合同 [DataContract] internal class Statuses { [DataMember(Name = "text", IsRequired = false)] internal string text; } try { HttpWebResponse webResponse

我正在尝试反序列化JSON数据,以便将这些值插入数据库,但我在sts.text中不断得到空值。有人能帮忙吗?谢谢

这是我的数据合同

[DataContract]
internal class Statuses
{
    [DataMember(Name = "text", IsRequired = false)]
    internal string text;
}


        try
        {
            HttpWebResponse webResponse = webRequest.GetResponse() as HttpWebResponse;
            Stream dataStream = webResponse.GetResponseStream();
            // Open the stream using a StreamReader for easy access.
            StreamReader reader = new StreamReader(dataStream);
            // Read the content.
            string responseFromServer = reader.ReadToEnd();

            DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(Statuses));
            MemoryStream ms = new MemoryStream(System.Text.ASCIIEncoding.ASCII.GetBytes(responseFromServer));

            Statuses sts = (Statuses)js.ReadObject(ms);                
            Console.WriteLine("text: " + sts.text);

        }
        catch (Exception ex)
        {
        }
这对我很有用:

    // Read the content.
    const string responseFromServer = "{\"text\":\"testing\"}"; //Add JSON

    var js = new DataContractJsonSerializer(typeof(Statuses));
    var ms = new MemoryStream(Encoding.UTF8.GetBytes(responseFromServer));

    var sts = (Statuses)js.ReadObject(ms);
    Response.Write("text: " + sts.text);
同样值得注意的是,我用公共访问修饰符转换了内部访问修饰符

还请注意,我改变了:

System.Text.ASCIIEncoding.ASCII.GetBytes(responseFromServer)
与:

Encoding.UTF8.GetBytes(responseFromServer)
我从测试中得到的最终结果是:


text:测试

responseFromServer的值是多少?我正在尝试测试这个,但我需要JSON数据。
Encoding.UTF8.GetBytes(responseFromServer)