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

在C#中使用正则表达式提取服务返回JSON字段值的方法

嘿,我懂你想用正则从这段JSON里提取字段值的需求,不过先插一句:其实处理JSON最靠谱的方式是用专门的JSON解析库,因为正则很容易被JSON里的空格、换行或者结构变化(比如字段顺序调整)坑到。不过既然你明确问了正则的实现方法,我给你具体的方案:

首先先把你的目标JSON贴出来方便参考:

{"success":true, "transaction":{"id":"82631130", "balanceAfter":"8555"}}

用正则提取字段值的具体实现

针对你这段固定结构的JSON,我们可以写针对性的正则来捕获每个字段:

  • 提取success的值:
    正则表达式:"success":\s*(true|false)
    逻辑:匹配"success":后面的零个或多个空格,然后精准捕获true或false这两个布尔值。

  • 提取transaction.id的值:
    正则表达式:"transaction":\s*\{"id":"([^"]+)"
    逻辑:先匹配"transaction":和后续的空格、左大括号,再定位到"id":",最后捕获引号之间的所有非引号字符(也就是id的具体值)。

  • 提取transaction.balanceAfter的值:
    正则表达式:"balanceAfter":"([^"]+)"
    逻辑:直接定位到"balanceAfter":",捕获后面的非引号字符即可。

代码示例(以Python为例)

下面是用Python结合正则提取的实际代码:

import re

# 你的JSON字符串
json_content = '{"success":true, "transaction":{"id":"82631130", "balanceAfter":"8555"}}'

# 提取success字段
success_result = re.search(r'"success":\s*(true|false)', json_content)
if success_result:
    print(f"success的值:{success_result.group(1)}")

# 提取transaction.id字段
id_result = re.search(r'"transaction":\s*\{"id":"([^"]+)"', json_content)
if id_result:
    print(f"transaction.id的值:{id_result.group(1)}")

# 提取transaction.balanceAfter字段
balance_result = re.search(r'"balanceAfter":"([^"]+)"', json_content)
if balance_result:
    print(f"transaction.balanceAfter的值:{balance_result.group(1)}")

更稳妥的替代方案:用JSON解析库

还是要再强调一遍,如果你的JSON结构可能发生变化(比如字段顺序调整、新增空格换行),正则很容易失效。这时候用专门的JSON解析库才是更稳妥的选择,比如Python的json模块:

import json

json_content = '{"success":true, "transaction":{"id":"82631130", "balanceAfter":"8555"}}'
# 解析JSON为字典
data = json.loads(json_content)

# 直接通过键名获取值
print(f"success的值:{data['success']}")
print(f"transaction.id的值:{data['transaction']['id']}")
print(f"transaction.balanceAfter的值:{data['transaction']['balanceAfter']}")

这种方法不管JSON里的空格、字段顺序怎么变,都能正确提取到目标值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:13:38