首页 > 解决方案 > 将 JSON 键转换为对象

问题描述

我有一个 scnerio,我不知道键的名称,因此无法事先创建属性。JSON 需要被解析并加载到类中存在的 Dictionary 中。JSON的格式就像

 "SearchCriteria":{         
        "firstname":"user1",
        "surname":"User2"                       
    },
 "RequiredGroups":{         
        "UserGroup":"g1",
        "TeacherGroup":"g2"                     
    }

问题是参数计数和名称是未知的,可以是任何东西。JSON 还包含其他部分,例如具有已知键名并与对象映射的RequiredGroups。需要转换成字典。任何线索....

标签: c#jsontype-conversion

解决方案


string str1 = "{\"SearchCriteria\":{ \"firstname\":\"user1\", \"surname\":\"User2\" }, \"RequiredGroups\":{ \"UserGroup\":\"g1\",\"TeacherGroup\":\"g2\"  }}";

            var jObject1 = JObject.Parse(str1);
            Dictionary<string, string> dictObj = new Dictionary<string, string>();

            IList<string> keys = jObject1.Properties().Select(p => p.Name).ToList();
            foreach(var k in keys)
            {
                var s = jObject1[k].ToString();
                dictObj.Add(k, s);
            }


推荐阅读