You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将带数据成员的JSON转换为C# Dictionary<string, string>?

解决嵌套JSON转C# Dictionary<string, string>的问题

嘿,我太懂这种卡壳的感觉了!你的这个JSON有点“套娃”——外层的d字段里包着的其实是另一个JSON字符串(看那些转义的引号就知道啦),直接转Dictionary肯定会失败,得拆两步来处理。

先给你最简洁的两行代码实现(用Newtonsoft.Json,也就是Json.NET,这是C#里处理JSON最常用的库):

var innerJson = Newtonsoft.Json.Linq.JObject.Parse(yourJsonString)["d"].ToString();
var currencyDict = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(innerJson);

要是你用的是.NET Core/.NET 5+自带的System.Text.Json,两行代码也能搞定:

var innerJson = System.Text.Json.JsonSerializer.Deserialize<System.Text.Json.JsonElement>(yourJsonString).GetProperty("d").GetString();
var currencyDict = System.Text.Json.JsonSerializer.Deserialize<Dictionary<string, string>>(innerJson);

为什么之前的尝试会失败?

你之前直接转Dictionary的话,序列化工具会把外层的整个JSON当成Dictionary来解析,但外层只有一个d键,对应的值是字符串类型,不是键值对对象,自然就转失败了。必须先把d里面的那个JSON字符串取出来,再把它反序列化成你要的Dictionary,这样就能用键值对的方式访问比如currencyDict["USD"]这种数据啦。

内容的提问来源于stack exchange,提问作者Demon Guru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:52:06