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

POST API嵌套JSON解析问题:保留0x键转数组用于MongoDB更新

问题:嵌套JSON解析丢失键值,无法提取第三层数据

从POST API获取嵌套JSON结构数据,需要保留两层以0x开头的键,但现有解析方式要么丢失键值,要么无法访问第三层数据。目标是将所有条目整理为单个数组,用于后续调用函数更新后端MongoDB。

原始数据

{
    "0xa0cC4414019471bef0fe0b07a76dA1F7CDc4cCf7": {
        "0x6f5dabb430572370d63010e5d6a52e39f40e73751e8d49f3e0088d6b76a5dc53": {
            "chain": "bsc",
            "soldAmount": 77.91952132935356,
            "boughtAmount": 7581.592038,
            "basePrice": 0.010277461638506796,
            "usdPrice": 0.010277461638506796,
            "usdSpent": 77.91952132935356,
            "walletAddress": "0x06f74D2dB8bFbeD7bFa3f809f01D7ad4bdaCd0D0",
            "whale": false
        }
    },
    "0x81cAd0ab645A1792F585cE93c5f955Ff3eCC3951": {
        "0x58601dd284313e72c70987774129659f0f3327354e03dad820ff498ac2bcd980": {
            "chain": "bsc",
            "soldAmount": 0.04130355997068365,
            "boughtAmount": 12006668.37444406,
            "basePrice": 3.4400517014859345e-09,
            "usdPrice": 1.1540347696736513e-06,
            "usdSpent": 13.856112772049464,
            "walletAddress": "0x52739B1646EBE3879C2592686D10094a3f88D3Aa",
            "whale": false
        }
    }
}

当前代码

var importData = req.body;

var txsData = [];

for (let [tx, value] of Object.entries(importData)) {
    txsData.push([tx, value])
}

解决方案

通过两层遍历提取所有层级的键和数据,将两层0x开头的键作为字段合并到第三层数据中,最终整理为单个数组:

var importData = req.body;
var txsData = [];

// 遍历第一层对象,获取第一个0x键和对应二级对象
for (let [contractAddr, txObj] of Object.entries(importData)) {
    // 遍历二级对象,获取第二个0x键和详情数据
    for (let [txHash, detail] of Object.entries(txObj)) {
        // 合并所有数据,保留两个0x键和详情字段
        const item = {
            contractAddr,
            txHash,
            ...detail
        };
        txsData.push(item);
    }
}

处理后txsData数组的每个元素结构示例:

{
    "contractAddr": "0xa0cC4414019471bef0fe0b07a76dA1F7CDc4cCf7",
    "txHash": "0x6f5dabb430572370d63010e5d6a52e39f40e73751e8d49f3e0088d6b76a5dc53",
    "chain": "bsc",
    "soldAmount": 77.91952132935356,
    "boughtAmount": 7581.592038,
    ... // 其他原有字段
}

之后直接遍历txsData数组,即可逐个调用函数完成MongoDB的更新操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 22:45:27