c# - 将字典字符串字符串转换为json字符串

标签 c# json linq

<分区>

我怎样才能转换我的字典

Dictionary<string,string> to JSON string 

然后再次从 JSON 字符串转换为

Dictionary<string,string> in c#?

最佳答案

尝试使用扩展方法。

public static class Extensions
{
    public static string FromDictionaryToJson(this Dictionary<string, string> dictionary)
    {
        var kvs = dictionary.Select(kvp => string.Format("\"{0}\":\"{1}\"", kvp.Key, string.Concat(",", kvp.Value)));
        return string.Concat("{", string.Join(",", kvs), "}");
    }

    public static Dictionary<string, string> FromJsonToDictionary(this string json)
    {
        string[] keyValueArray = json.Replace("{", string.Empty).Replace("}", string.Empty).Replace("\"", string.Empty).Split(',');
        return keyValueArray.ToDictionary(item => item.Split(':')[0], item => item.Split(':')[1]);
    }
}

下面是你将如何使用它们。

    class Program
    {
        static void Main(string[] args)
        {
            Dictionary<string, string> dictss = new Dictionary<string, string>();

            dictss.Add("onekey", "oneval");
            dictss.Add("twokey", "twoval");
            dictss.Add("threekey", "threeval");
            dictss.Add("fourkey", "fourval");
            dictss.Add("fivekey", "fiveval");

            string jsonString = dictss.FromDictionaryToJson(); //call extension method

            Console.WriteLine(jsonString);

            Dictionary<string, string> dictss2 = jsonString.FromJsonToDictionary(); //call extension method

            foreach(KeyValuePair<string,string> kv in dictss2)
                Console.WriteLine(string.Format("key={0},value={1}", kv.Key, kv.Value));
        }
    }

或者使用普通函数

        public string FromDictionaryToJson(Dictionary<string, string> dictionary)
        {
            var kvs = dictionary.Select(kvp => string.Format("\"{0}\":\"{1}\"", kvp.Key, string.Join(",", kvp.Value)));
            return string.Concat("{", string.Join(",", kvs), "}");
        }

        public Dictionary<string, string> FromJsonToDictionary(string json)
        {
            string[] keyValueArray = json.Replace("{", string.Empty).Replace("}", string.Empty).Replace("\"", string.Empty).Split(',');
            return keyValueArray.ToDictionary(item => item.Split(':')[0], item => item.Split(':')[1]);
        }

关于c# - 将字典字符串字符串转换为json字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23729477/

相关文章:

c# - 在 C# 中尽早终止 Roslyn 脚本

c# - 是否存在在 Project Server 中分配、更改或删除资源时引发的事件处理程序?

javascript - 如何在 Angular2 中显示对象内的对象属性

c# - 数据库已经存在。使用 CreateDatabase() 选择不同的名称

c# - 在 Visual Studio 2012 中添加对其他项目的引用

C# 和 SDL - 最终用户是否需要安装 SDL?

java - 计算 JSONArray 中的字符串和 JSONObject 的数量

c# - 在 AspNetCore 中构建/实例化静态类的正确方法

c# - linq to entities 无法识别方法 int32 toint32

c# - LINQ - 将字符串转换为日期时间