我试图将json对象反序列化为来自Web服务的字符串,但我无法做到。 我试图放置[IgnoreDataMember]属性,但它将其设置为null。
我要这样做:
DataContractJsonSerializer MySerializer = new DataContractJsonSerializer(typeof(Response));
Response response = (Response)MySerializer.ReadObject(new MemoryStream(Encoding.Unicode.GetBytes(e.Result)));
这是我的Response类:
public class Reponse
{
[DataMember]
public data1 { get; set; }
[DataMember]
public List<AnotherData> data2 { get; set; }
}
public class AnotherData
{
[DataMember]
public string name { get; set; }
public object object1 {get; set;}
}
我想将名为object1的JSON对象反序列化为字符串而不是对象。我怎么能这样做?
感谢您的帮助
答案 0 :(得分:0)
您应该使用继承自IDispatchMessageFormatter的自定义调度程序创建自定义行为。请使用此exemple并进行更新。
在DeserializeRequest方法中,您将阅读以下消息:
var bodyReader = message.GetReaderAtBodyContents();
bodyReader.ReadStartElement("Binary");
byte[] rawBody = bodyReader.ReadContentAsBase64();
MemoryStream ms = new MemoryStream(rawBody);
StreamReader sr = new StreamReader(ms);
string content = string.Empty;
using (StreamReader reader = new StreamReader(ms, Encoding.UTF8))
{
content = reader.ReadToEnd();
}