c# - 将 JSON 键转换为对象
问题描述
我有一个 scnerio,我不知道键的名称,因此无法事先创建属性。JSON 需要被解析并加载到类中存在的 Dictionary 中。JSON的格式就像
"SearchCriteria":{
"firstname":"user1",
"surname":"User2"
},
"RequiredGroups":{
"UserGroup":"g1",
"TeacherGroup":"g2"
}
问题是参数计数和名称是未知的,可以是任何东西。JSON 还包含其他部分,例如具有已知键名并与对象映射的RequiredGroups。需要转换成字典。任何线索....
解决方案
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);
}
推荐阅读
- c# - datagridview 排序未正确完成
- python - psycopg2:TypeError:字符串格式化期间并非所有参数都转换了
- teamcity - Specflow 生成所有详细信息
- java - 删除元素时 PriorityQueue 更改顺序
- javascript - 如果在其中满足条件,则停止 node-cron cron.schedule
- c# - 什么是 ssas 分区“注释”属性
- java - 没有错误,但应用程序一直在 android studio Java 中停止
- ruby-on-rails - CanCan 能力忽略一个应该禁止访问的条件?
- java - 发送带有附件的电子邮件,从内容 bytea postgresql 获取数据
- matlab - 将 bpmn 文件中的数据导入一个字符串/字符值 Matlab