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

如何通过逗号获取JSON数据?JS对象数组拼接报错问题

问题分析与解决方案

问题原因

  1. [object Object]输出的原因:你调用filter后得到的仍然是对象数组,直接对对象数组使用join(",")时,JavaScript会自动调用每个对象的toString()方法,而对象默认的toString()返回值就是[object Object],因此最终拼接出了一堆[object Object]。
  2. JSON.parse报错的原因:lk = data.response.location已经是JavaScript解析好的数组对象,不是JSON格式的字符串,JSON.parse()只能处理JSON字符串,所以会抛出解析错误。

修正代码

要实现提取每个location对象里的location字段并以逗号分隔,需要先用map把对象数组转换成字符串数组,再执行join:

var lk = data.response.location;
console.log(lk);
// 先筛选(确保item有location字段才保留),再提取目标字段,最后拼接
var ghlok = lk
  .filter(function(item) {
    return item.location;
  })
  .map(function(item) {
    return item.location;
  })
  .join(",");
console.log(ghlok); // 输出:1m23,2df65,3sk56

如果你的场景里所有location对象都包含location字段,不需要筛选逻辑,可以简化为:

var ghlok = lk.map(item => item.location).join(",");

额外场景处理

如果需要拼接整个对象的JSON字符串(比如把每个对象转成JSON格式再拼接),可以用map结合JSON.stringify:

var ghlok = lk.map(item => JSON.stringify(item)).join(",");
// 输出:{"city":"Lond.","location":"1m23"},{"city":"Lond.","location":"2df65"},{"city":"Lond.","location":"3sk56"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 19:43:20