我尝试使用以下代码,但输入参数为字符串时出现错误。
protected override object DeserializeCore(Type type, byte[] value)
{
using (var ms = new MemoryStream(value))
using (var sr = new StreamReader(ms, Encoding.UTF8))
{
var result = Newtonsoft.Json.JsonConvert.DeserializeObject(sr, type);
return result;
}
}
和我传递它作为sr.ToString()
得到错误:
解析值时遇到意外字符:S. Path ",第0行,位置0.
这不是更简单吗?
protected override object DeserializeCore(Type type, byte[] value) {
var str = System.Text.Encoding.UTF8.GetString(value);
return JsonConvert.DeserializeObject(str, type);
}
我不明白你为什么要使用流。是否与编码有关?)
try this -
public class JsonObject
{
public object Value { get; set; }
public string Type { get; set; }
}
var s = "{'Value':{'something':'test'},'Type':'JsonData'}";
var o = DeserializeCore(typeof(JsonObject), Encoding.UTF8.GetBytes(s.ToCharArray()));