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

如何高效接收并存储API返回JSON中的货币符号数据

优化JSON反序列化的实现思路提示

问题背景

我正在开发一款货币应用,已找到可获取可用货币信息的API。调用该接口后返回的JSON数据如下:

{"success": true,"symbols": {"AED": "United Arab Emirates Dirham","AFN": "Afghan Afghani","ALL": "Albanian Lek","AMD": "Armenian Dram",[...]}}

我定义的用于接收该JSON数据的类如下:

public class SymbolsResult
{
    public bool Success { get; set; }
    public string Symbols { get; set; }
}

目前Symbols被反序列化为string类型,只能通过繁琐的字符串分割方式将其转换为Dictionary<string, string>,代码如下:

SymbolsResult x = jsonDeserializer.Deserialize<SymbolsResult>(response);
Dictionary<string, string> symbols = new Dictionary<string, string>();

var strings = x.Symbols.Split(new char[] { ',' });
foreach(string s in strings)
{
    string ss = s.Replace("{", "").Replace("}", "").Replace(",", "").Replace("\\", "");
    var sss = ss.Split(new char[] { ':' });
    symbols.Add(sss[0], sss[1]);
}
return symbols;

请问有没有更优的实现思路?只需要提示即可。

优化思路提示

  • 修改SymbolsResult类中Symbols的类型为Dictionary<string, string>,让JSON序列化器直接完成反序列化,无需手动处理字符串
  • 若使用Newtonsoft.Json,可通过[JsonProperty]特性调整类属性与JSON键名的映射关系(如果名称不匹配)
  • 若需保留原有类结构,可直接将整个JSON响应反序列化为Dictionary<string, object>,再提取symbols对应的字典数据
  • 完全摒弃手动字符串分割的方式,依赖序列化库的内置能力处理嵌套JSON结构

内容的提问来源于stack exchange,提问作者Michal Szura

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 19:45:51