Java如何使用substring方法从REST API返回的JSON字符串提取目标UUID
代码问题排查
- 核心逻辑错误:你获取的结果本身是标准JSON格式字符串,手动用
substring硬切需要处理转义、边界场景,容错率极低,是报错的主要原因 - 语法错误:
str.substring.lastIndexOf("\"")写法不合法,lastIndexOf是字符串实例的直接方法,正确写法为str.lastIndexOf(),不可挂载在substring方法下 - 硬编码偏移不可靠:固定从索引5位置开始截取的写法,只要JSON结构稍有变化(比如前后新增空格、数组新增元素),结果就会完全错误
最优实现方案
优先用JSON解析方法,不需要处理任何转义、边界问题,兼容性最好(以下为JavaScript示例,其他语言逻辑通用,调用对应语言的JSON解析方法即可):
// 1. 将JSON字符串解析为原生数组对象 const resArr = JSON.parse(Str); // 2. 直接取两层嵌套数组的首元素即为目标UUID const targetUuid = resArr[0][0];
字符串截取参考方案(不推荐)
如果必须用字符串方法实现,不要写死偏移量,动态匹配双引号位置即可:
// 匹配第一个双引号的索引 const firstQuoteIdx = Str.indexOf('"'); // 匹配第一个双引号之后的下一个双引号索引 const nextQuoteIdx = Str.indexOf('"', firstQuoteIdx + 1); // 截取两个双引号中间的内容 const targetUuid = Str.substring(firstQuoteIdx + 1, nextQuoteIdx);
内容的提问来源于stack exchange,提问作者sarah
相关产品推荐
相关产品推荐

