Asp.net DataContractJsonSerializer ReadObject()返回空值
我正在尝试反序列化JSON数据,以便将这些值插入数据库,但我在sts.text中不断得到空值。有人能帮忙吗?谢谢 这是我的数据合同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
[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)