无法使用Newton Json反序列化对象



我尝试使用以下代码,但输入参数为字符串时出现错误。

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()));

相关内容

  • 没有找到相关文章