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

如何用jQuery从返回的JSON对象构建数组?求更优实现方案

用jQuery从给定JSON构建数组的实现方案

嘿,别慌,jQuery久不用生疏太正常了!针对你给出的JSON结构,我整理了几种实用的数组构建方式,都是用jQuery就能轻松搞定的~

先把你的JSON示例存为变量方便后续操作:

const responseData = { 
  "Service": true, 
  "ZipCode": "02865", 
  "City": "Lincoln", 
  "State": "RI", 
  "plumbing": true, 
  "electric": true, 
  "septic": true, 
  "excavation": true, 
  "draincleaning": true, 
  "heating": true, 
  "cooling": true, 
  "waterquality": true, 
  "commercial": true 
};

场景1:提取所有启用的服务项名称数组

从你的JSON来看,有一堆值为true的服务类型字段(除了顶部的Service),如果目标是把这些服务名提取成数组,用jQuery的$.each遍历就很方便:

const availableServices = [];

// 遍历JSON的每个键值对
$.each(responseData, function(key, value) {
  // 筛选出值为true且不是基础字段"Service"的项
  if (value === true && key !== "Service") {
    availableServices.push(key);
  }
});

console.log(availableServices);
// 输出结果:["plumbing", "electric", "septic", "excavation", "draincleaning", "heating", "cooling", "waterquality", "commercial"]

场景2:构建地址信息的结构化数组

如果需要把地址相关的基础信息整理成数组(比如单个对象元素的数组,方便后续批量处理),可以直接手动组装:

const locationInfoArray = [
  {
    zipCode: responseData.ZipCode,
    city: responseData.City,
    state: responseData.State,
    isServiceAvailable: responseData.Service
  }
];

console.log(locationInfoArray);
// 输出:[{zipCode: "02865", city: "Lincoln", state: "RI", isServiceAvailable: true}]

场景3:整合基础信息与服务列表的复合数组

要是想把两种信息整合到一个数组里,形成更完整的数据结构,可以结合上面两个场景的结果:

const combinedDataArray = [
  {
    locationDetails: {
      zip: responseData.ZipCode,
      city: responseData.City,
      state: responseData.State
    },
    serviceEnabled: responseData.Service,
    availableServices: availableServices // 复用场景1生成的数组
  }
];

console.log(combinedDataArray);

额外小建议

如果以后你的API能把服务项统一放到一个子对象层级里(比如"services": {plumbing: true, electric: true, ...}),那遍历起来会更简洁,直接遍历responseData.services就行~ 不过现在的写法完全能适配你当前的JSON结构啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:19:16