JavaScript读取localStorage对象并将数据添加至JSON节点
实现从localStorage提取数据并合并到指定JSON节点
步骤说明
- 读取并解析localStorage数据:localStorage存储的是字符串格式,需用
JSON.parse()转换为JavaScript数组。 - 属性映射转换:遍历数组内的每个对象,提取
IdBulto、Bulto、Contenedor属性,将属性名转换为目标JSON要求的小驼峰格式,同时补充estado属性值。 - 合并到目标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
相关产品推荐
相关产品推荐

