You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Google Sheets提取的字符串数组无法解析取值问题求助

解决方案

可以通过以下步骤处理该字符串数组,提取目标城市数据:

1. 过滤空字符串

先排除数组中的空项,避免后续解析流程出错:

const rawArray = ["[{'city': 'new york', 'state': 'ny'}]", "[{'city': 'dallas', 'state': 'tx'}]", "","[{'city': 'los angeles', 'state': 'ca'}]"];
const filteredArray = rawArray.filter(item => item.trim() !== '');

2. 解析字符串为JS对象

原始字符串使用单引号,不符合JSON规范,需先处理格式再解析;或在数据安全的前提下直接执行字符串代码:

方法一:替换单引号后用JSON.parse(更安全)

const parsedData = filteredArray.map(str => {
  // 将单引号替换为双引号,转为合法JSON格式
  const validJsonStr = str.replace(/'/g, '"');
  // 解析为数组后取第一个元素(即目标键值对对象)
  return JSON.parse(validJsonStr)[0];
});

方法二:使用eval(简单但需注意安全)

仅在数据来源完全可信时使用,避免执行恶意代码风险:

const parsedData = filteredArray.map(str => {
  // 直接执行字符串代码得到数组,取第一个元素
  return eval(str)[0];
});

3. 提取城市名

遍历解析后的对象数组,提取city属性:

const cityNames = parsedData.map(item => item.city);
console.log(cityNames); // 输出: ['new york', 'dallas', 'los angeles']

完整整合代码

const rawArray = ["[{'city': 'new york', 'state': 'ny'}]", "[{'city': 'dallas', 'state': 'tx'}]", "","[{'city': 'los angeles', 'state': 'ca'}]"];

const cityNames = rawArray
  .filter(item => item.trim() !== '')
  .map(str => JSON.parse(str.replace(/'/g, '"'))[0])
  .map(item => item.city);

console.log(cityNames);

注意事项

  • 若Google Sheets导出的字符串包含特殊字符,需额外添加转义处理逻辑。
  • 优先选择JSON.parse方案,降低安全风险。

内容的提问来源于stack exchange,提问作者Jon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 02:47:32