Groovy从字符串提取值:如何获取JSON字符串中的user_1
搞定JSON字段提取的小技巧
嘿,我看你现在卡在了从拆分后的字符串里提取user_1的问题上,其实核心原因是原始的responseString被额外的引号包裹了,手动拆分后才会带出多余的引号。给你几个靠谱的解决办法:
方法一:用JSON解析(最稳妥,推荐!)
你完全不用手动去tokenize拆分字符串,先把原始的responseString清理干净,再用JSON解析工具直接拿值就行:
- 先把开头的
responseString:和外层的首尾引号去掉,得到纯净的JSON内容:{"session":"vvSbMInXHRJuZQ==","age":7200,"prid":"901Vjmx9qenYKw","userid":"user_1"} - 用你所用语言的JSON解析库(比如Python的
json模块、JS的JSON.parse)把它转成对象,然后直接取userid字段:# Python示例 import json # 假设你的原始responseString是下面这个 responseString = '"{"session":"vvSbMInXHRJuZQ==","age":7200,"prid":"901Vjmx9qenYKw","userid":"user_1"}"' clean_json = responseString.strip('"') # 去掉外层引号 data = json.loads(clean_json) user_id = data['userid'] # 直接得到user_1
方法二:如果已经拿到了拆分后的项
要是你已经拿到了""userid":"user_1""这个字符串,也可以用字符串处理快速提取:
- 先把所有多余的双引号去掉,再按冒号拆分:
# 假设你拿到的项是item item = '"userid":"user_1"' user_id = item.replace('"', '').split(':')[1] - 或者用正则直接匹配值部分,更精准:
import re match_result = re.search(r'"userid":"(.*?)"', item) if match_result: user_id = match_result.group(1) # 得到user_1
小提醒
尽量别手动拆分JSON字符串哦,万一以后字段值里出现逗号或者引号,手动拆分肯定会出问题,用标准的JSON解析工具才是长久之计~
内容的提问来源于stack exchange,提问作者Teddy
相关产品推荐
相关产品推荐

