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

C#如何提取JSON字符串中的加密货币名称(如BTC、ETH等)

嘿,我来帮你搞定提取加密货币名称的事儿!其实不用手动抠字符串那么麻烦,有更靠谱的办法,当然也可以满足你原本的思路,下面给你几种方案:

最稳妥的方法:用JSON解析库(强烈推荐)

既然你的数据是标准的JSON格式,直接用编程语言的JSON解析工具是最可靠的,完全不用担心格式变化或者特殊字符的问题。以Python为例:

import json

# 你的原始JSON字符串
crypto_json = '{"BTC":{"USD":7358.8},"ETH":{"USD":402.78},"LTC":{"USD":125.37},"DASH":{"USD":335.73},"XMR":{"USD":187.2},"NXT":{"USD":0.1272},"ZEC":{"USD":204.82},"XRP":{"USD":0.5296},"WAVES":{"USD":4},"BCH":{"USD":705.74},"EOS":{"USD":5.89},"XLM":{"USD":0.229},"ADA":{"USD":0.1601},"NEO":{"USD":52.03},"IOT":{"USD":1.07}}'

# 把JSON字符串解析成Python字典
crypto_dict = json.loads(crypto_json)

# 提取字典的所有键,就是你要的加密货币名称
crypto_names = list(crypto_dict.keys())

# 输出结果
print(crypto_names)

运行后你会得到一个包含所有加密货币名称的列表:['BTC', 'ETH', 'LTC', 'DASH', 'XMR', 'NXT', 'ZEC', 'XRP', 'WAVES', 'BCH', 'EOS', 'XLM', 'ADA', 'NEO', 'IOT']

这种方法的好处是,不管JSON格式怎么调整(比如键值对顺序变化、新增空格等),解析工具都能正确识别,不会出错。

手动字符串处理(符合你的初始思路)

如果你一定要手动处理字符串,也可以实现,但要注意这种方法只适合当前这种格式非常规整的JSON,一旦格式有变化(比如某个值里包含逗号或引号)就会失效。示例代码:

crypto_json = '{"BTC":{"USD":7358.8},"ETH":{"USD":402.78},"LTC":{"USD":125.37},"DASH":{"USD":335.73},"XMR":{"USD":187.2},"NXT":{"USD":0.1272},"ZEC":{"USD":204.82},"XRP":{"USD":0.5296},"WAVES":{"USD":4},"BCH":{"USD":705.74},"EOS":{"USD":5.89},"XLM":{"USD":0.229},"ADA":{"USD":0.1601},"NEO":{"USD":52.03},"IOT":{"USD":1.07}}'

# 去掉首尾的大括号
trimmed_json = crypto_json.strip('{}')
# 按逗号分割每个键值对
key_value_pairs = trimmed_json.split(',')

crypto_names = []
for pair in key_value_pairs:
    # 分割出键的部分,去掉前后的引号
    crypto_name = pair.split(':')[0].strip('"')
    crypto_names.append(crypto_name)

print(crypto_names)

这个逻辑就是你原本想的:找到冒号前、引号后的内容,去掉冗余的引号和空格。

正则表达式提取(适合格式固定的场景)

如果你的JSON格式一直很规整,也可以用正则表达式直接匹配出所有加密货币名称:

import re

crypto_json = '{"BTC":{"USD":7358.8},"ETH":{"USD":402.78},"LTC":{"USD":125.37},"DASH":{"USD":335.73},"XMR":{"USD":187.2},"NXT":{"USD":0.1272},"ZEC":{"USD":204.82},"XRP":{"USD":0.5296},"WAVES":{"USD":4},"BCH":{"USD":705.74},"EOS":{"USD":5.89},"XLM":{"USD":0.229},"ADA":{"USD":0.1601},"NEO":{"USD":52.03},"IOT":{"USD":1.07}}'

# 匹配双引号内的大写字母/数字,后面跟着冒号的内容
pattern = r'"([A-Z0-9]+)":'
crypto_names = re.findall(pattern, crypto_json)

print(crypto_names)

这个正则会精准匹配你当前JSON里的加密货币名称,但如果之后有名称包含小写字母或特殊字符,需要调整正则表达式的规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:20:30