Jenkinsfile中使用Groovy将JSON字符串转换为Map并提取字段值
解析JSON字符串提取hash字段实现方案
你持有的目标字符串是标准JSON格式,不需要自己手动实现字符串转Map的逻辑,各主流编程语言都提供了成熟的内置JSON解析能力,直接调用即可完成字段提取,以下是常见开发场景的实现示例:
Java 实现
推荐使用Jackson、Fastjson2这类常用JSON处理包,以Jackson为例,代码如下:import com.fasterxml.jackson.databind.ObjectMapper; import java.util.Map; public class ParseDemo { public static void main(String[] args) throws Exception { String jsonContent = "{\"analyzer\": \"static_analyzer\", \"status\": \"success\", \"hash\": \"3c8f0dae82136f0a1447de5531e5bd03\", \"scan_type\": \"zip\", \"file_name\": \"jenkins-iOS-BuildVerify-GH-PR-6487-38.zip\"}"; ObjectMapper mapper = new ObjectMapper(); Map<String, Object> parseResult = mapper.readValue(jsonContent, Map.class); String hashVal = (String) parseResult.get("hash"); // 最终拿到的hashVal就是目标值 3c8f0dae82136f0a1447de5531e5bd03 } }Python 实现
直接调用内置json标准库即可,无需安装额外依赖:import json json_content = '{"analyzer": "static_analyzer", "status": "success", "hash": "3c8f0dae82136f0a1447de5531e5bd03", "scan_type": "zip", "file_name": "jenkins-iOS-BuildVerify-GH-PR-6487-38.zip"}' parse_result = json.loads(json_content) hash_val = parse_result["hash"] # 最终拿到的hash_val就是目标值 3c8f0dae82136f0a1447de5531e5bd03Go 实现
使用标准库encoding/json处理:package main import ( "encoding/json" "fmt" ) func main() { jsonContent := `{"analyzer": "static_analyzer", "status": "success", "hash": "3c8f0dae82136f0a1447de5531e5bd03", "scan_type": "zip", "file_name": "jenkins-iOS-BuildVerify-GH-PR-6487-38.zip"}` var parseResult map[string]interface{} _ = json.Unmarshal([]byte(jsonContent), &parseResult) hashVal := parseResult["hash"].(string) fmt.Println(hashVal) // 输出 3c8f0dae82136f0a1447de5531e5bd03 }JavaScript/Node.js 实现
直接调用全局内置的JSON对象方法:const jsonContent = '{"analyzer": "static_analyzer", "status": "success", "hash": "3c8f0dae82136f0a1447de5531e5bd03", "scan_type": "zip", "file_name": "jenkins-iOS-BuildVerify-GH-PR-6487-38.zip"}'; const parseResult = JSON.parse(jsonContent); const hashVal = parseResult.hash; // hashVal即为目标值 3c8f0dae82136f0a1447de5531e5bd03
注意:不要用正则匹配、字符串硬编码截取的方式提取字段,一旦JSON字段顺序调整、存在转义字符就会出现解析错误,优先使用各语言官方/社区通用的JSON解析库,稳定性有保障。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

