c# - 使用 JavaScriptSerializer(等效于 JSON.PARSE)创建自构造对象

标签 c# .net json vb.net .net-4.5

我正在创建一个灵活的框架,用于为第三方开发者创建和存储设置。

我们做出的一个更好的选择是创建一个系统,开发人员可以在该系统中使用 JSON 创建他们自己的设置,然后简单地序列化对象。

即.

public class YammerConfig
{
    public string yammerClientId { get; set; }
    public string yammerNetwork { get; set; }

    public YammerConfig(string js)
    {
        var ser = new JavaScriptSerializer();
        var sam = ser.Deserialize<YammerConfig>(js);
        yammerClientId = sam.yammerClientId;
        yammerNetwork = sam.yammerNetwork;
    }
}

这是一种将设置存储在数据库中的有效方法,而无需为独特的信息集重新配置新表。

我很乐意更进一步,就像 JavaScript 本身所做的那样,动态创建不需要手动序列化的对象。

是否可以在 .NET C# 中创建与 json.parse 等效的内容?

最佳答案

为什么不使用扩展方法

例如。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;

namespace Stackoverflow.Helpers
{
    public static class JsonHelper
    {
        private static JavaScriptSerializer ser = new JavaScriptSerializer();
        public static T ToJSON<T>(this string js) where T : class
        {
            return ser.Deserialize<T>(js);
        }

        public static string JsonToString(this object obj)
        {
            return ser.Serialize(obj);
        }
    }
}

易于使用

//Deserialize
string s = "{yammerClientId = \"1\",yammerNetwork = \"2\"}";    
YammerConfig data = s.ToJSON<YammerConfig>();

//Serialize
string de = data.JsonToString();

关于c# - 使用 JavaScriptSerializer(等效于 JSON.PARSE)创建自构造对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19234855/

相关文章:

C# 公共(public)类型别名?

c# - 如何从代码隐藏属性中获取样式属性的值?

javascript - 无法解析有效的 JSON

java - 如何检查字符串中的所有“字符是否都被转义

c# - 检测unity中引用的其他对象值的变化?

c# - 通过 C#.Net 创建/连接 VPN 连接

c# - 在 C# 中避免 namespace 和类型名称冲突的准则是什么?

c# - CSV 正则表达式拆分缺失的列

java - 使用 Jackson 库自定义 pretty-print

c# - GetLastInputInfo 不返回 dwTime