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

JavaScript读取localStorage对象并将数据添加至JSON节点

实现从localStorage提取数据并合并到指定JSON节点

步骤说明

  1. 读取并解析localStorage数据:localStorage存储的是字符串格式,需用JSON.parse()转换为JavaScript数组。
  2. 属性映射转换:遍历数组内的每个对象,提取IdBulto、Bulto、Contenedor属性,将属性名转换为目标JSON要求的小驼峰格式,同时补充estado属性值。
  3. 合并到目标JSON:把转换后的对象添加到目标JSON的Detalles[0].bultosEntrega数组中。

完整代码实现

// 1. 读取并解析localStorage中的数组(存入时需确保是JSON.stringify后的字符串)
const bultosStorage = localStorage.getItem('bultosStorage');
const bultosArray = JSON.parse(bultosStorage) || []; // 兼容存储为空的情况

// 2. 目标JSON对象(假设你已持有该对象)
const targetJson = {
  "ControlEntrega": 107252,
  "IdEstadoDespacho": 1,
  "IdEstadoRetirado": 2,
  "IdEstadoCobro": 2,
  "IdEstadoEntregaFallidas": 0,
  "IdEstadoGaveta": 2,
  "CodigoLocalidad": 1,
  "UsuarioActualizacion": "Paul.Rizzo",
  "IpActualizacion": "LiquidacionEntrega",
  "Proceso": "E",
  "Detalles": [
    {
      "ControlEntregaDetalle": 3774286,
      "ControlEntrega": 107252,
      "bultosEntrega": [
        {
          "idBulto": 9407982,
          "contenedor": "010168",
          "bulto": "010168",
          "estado": "A"
        }
      ]
    }
  ]
};

// 3. 遍历转换属性并追加到目标节点
bultosArray.forEach(item => {
  const convertedItem = {
    idBulto: item.IdBulto,
    bulto: item.Bulto,
    contenedor: item.Contenedor,
    estado: item.EstadoEntrega || "A" // 复用原对象的状态值,默认设为"A"
  };
  targetJson.Detalles[0].bultosEntrega.push(convertedItem);
});

// 处理完成后,可查看更新后的节点数据
console.log(targetJson.Detalles[0].bultosEntrega);

注意事项

  • 存入localStorage时需用JSON.stringify()将数组转为字符串,正确存储代码示例:localStorage.setItem('bultosStorage', JSON.stringify(你的数组))。
  • 若Detalles数组可能为空,需先判断targetJson.Detalles[0]是否存在,避免出现报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 14:57:21