访问JSON字符串值时获取id返回undefined的问题
访问JSON中的id值返回undefined的解决方法
问题原因
你的settings字段并不是可直接操作的JavaScript对象,而是JSON格式的字符串(从数据里能看到它被双引号包裹,内部还有转义的换行和引号)。直接用.clients去访问字符串的属性,自然会返回undefined。
解决步骤
先把settings字符串解析成JavaScript对象,再从中提取id值:
const remark = data.obj[i].remark; // 将JSON字符串解析为可操作的JS对象 const settingsObj = JSON.parse(data.obj[i].settings); // 从解析后的对象中获取目标id const clientId = settingsObj.clients[0].id;
额外优化(避免报错)
如果settings格式可能不合法,或者clients数组为空,可以添加异常处理和可选链来避免程序崩溃:
const remark = data.obj[i].remark; let clientId = null; try { const settingsObj = JSON.parse(data.obj[i].settings); // 可选链?.防止clients为空或不存在时抛出错误 clientId = settingsObj.clients?.[0]?.id; } catch (error) { console.error('解析settings失败:', error); }
内容的提问来源于stack exchange,提问作者world
相关产品推荐
相关产品推荐

