繁体   English   中英

如何使用Json.Net反序列化?

[英]How can I Deserialize with Json.Net?

我正在尝试将json字符串反序列化为接口实例,

但我的代码返回了异常消息,例如“无法创建Form1 + IFoo类型的实例。 类型是接口或抽象类,无法实例化。 路径“值”

但有什么我不能做的吗?,我想解决这个问题,谢谢。

这是代码

    public interface IFoo
    {
        int value { get; }
    }

    [Serializable]
    public class Foo : IFoo
    {
        public int value
        {
            get { return 1; }
        }
    }

    public void run()
    {
        IFoo foo = new Foo();

        string json = JsonConvert.SerializeObject(foo); //it's working
        IFoo dese = JsonConvert.DeserializeObject<IFoo>(json); //but it's not working
    }

由于接口和抽象类无法实例化。 你应该用这个

     IFoo dese = JsonConvert.DeserializeObject<Foo>(json);

错误消息很简单,它要求您不要给它一个接口。 '无法创建Form1 + IFoo类型的实例。 类型是接口或抽象类,无法实例化。 路径“值”

请尝试这个。

var dese = JsonConvert.DeserializeObject<Foo>(json)

因为接口或抽象类无法实例化,可以尝试一下

IFoo dese = JsonConvert.DeserializeObject<IFoo>(json); //but it's not working
Foo dese = JsonConvert.DeserializeObject<Foo>(json); //it'sworking

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM