【问题标题】:Decode json into .Net Object将 json 解码为 .Net 对象
【发布时间】:2015-06-17 05:12:50
【问题描述】:

我创建了一个自定义提供程序来管理我的 Web 应用程序的会话状态,并且我在提供程序中使用 json serialization and deserialization 来处理会话数据。从提供者那里,我从会话集合中取回 json 字符串,我必须在我的 Web 应用程序中反序列化它以获取具体类型。我不想在我的 Web 应用程序中将会话的 getter 实现从 (T)Session["Key"] 更改为 json.deserialize<T>(Session["Key"])。 因此,为了克服这一点,我必须将 json 字符串转换为提供程序本身中的 .Net 对象。一种方法是使用System.Web.HelpersJson.Decode 方法,它将json 字符串转换为.Net 对象,但这不可行,因为提供者将依赖System.web。其他可能的方法是创建一个Expando object,但不能仅通过使用 (T)(eobject) 将该对象类型转换为具体类型,因此这也是不可行的。在我的提供程序中,我可以使用哪些其他方式将 json 字符串转换为 .Net 对象。

【问题讨论】:

    标签: c# asp.net json asp.net-mvc session


    【解决方案1】:

    Newtonsoft Json.Net 不依赖于 System.Web,但我不明白为什么它会成为你的障碍。

    https://github.com/JamesNK/Newtonsoft.Json

    【讨论】:

    • json.deserialize(string) 是Newtonsoft Json.Net提供的方法。我们必须传递我不想做的反序列化的具体类型。
    • 我明白了,这对我来说不是问题,因为我倾向于将模型对象与具有功能的类分开,从而在需要伪造或注入接口时实现接口。
    • 是的,这是一件好事。我正在对不是以这种方式开发的现有企业应用程序进行更改,因此正在寻找替代方案。
    猜你喜欢
    • 2022-01-07
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    相关资源
    最近更新 更多