如何从响应负载的JSON字符串中读取status字段值
解析嵌套JSON响应提取指定字段的实现方法
给定的响应负载中,response字段是一个非标准JSON格式的字符串(使用单引号),需要解析该字符串后提取两个值:
UsersList数组内用户的status值(如示例中的"Active")- 内层JSON结构的外层
status值(如示例中的0)
Python 实现
import json from ast import literal_eval # 原始响应负载 response_payload = { "signature": "1hdj12493039282849922", "response": "{'UsersList':[{'userName':'Madan Jones','mobileNumber':'767780987','status':'Active','statusCode':null}],'status':0,'messageCode':null,'message':null,'errorMap':null}" } # 提取内层JSON字符串 inner_json_str = response_payload["response"] # 解析内层字符串(用literal_eval兼容单引号格式,或替换单引号为双引号后用json.loads) inner_data = literal_eval(inner_json_str) # 替代方案:inner_data = json.loads(inner_json_str.replace("'", "\"")) # 获取目标值 user_status = inner_data["UsersList"][0]["status"] outer_status = inner_data["status"] print(f"用户状态: {user_status}") print(f"内层响应状态码: {outer_status}")
JavaScript 实现
// 原始响应负载 const responsePayload = { "signature": "1hdj12493039282849922", "response": "{'UsersList':[{'userName':'Madan Jones','mobileNumber':'767780987','status':'Active','statusCode':null}],'status':0,'messageCode':null,'message':null,'errorMap':null}" }; // 提取内层JSON字符串 const innerJsonStr = responsePayload.response; // 将单引号替换为双引号,符合标准JSON格式 const formattedInnerStr = innerJsonStr.replace(/'/g, '"'); // 解析内层字符串为对象 const innerData = JSON.parse(formattedInnerStr); // 获取目标值 const userStatus = innerData.UsersList[0].status; const outerStatus = innerData.status; console.log(`用户状态: ${userStatus}`); console.log(`内层响应状态码: ${outerStatus}`);
注意事项
- 内层字符串使用单引号,不符合标准JSON规范,解析前需做格式兼容处理(替换单引号或使用兼容解析工具)。
- 若
UsersList包含多个用户,可通过遍历数组获取每个用户的status值。
内容的提问来源于stack exchange,提问作者Gourish Mahale
相关产品推荐
相关产品推荐

