如何重命名大型JSON文件中的重复密钥?

问题描述 投票:0回答:1

我有一个采用这种格式的大文件。最初,我尝试使用JSONStream在javascript中对此进行解析,然后遇到了issues。我一直在尝试找出更改重复键的方法,以便可以更轻松地解析它。例如:代替content,每个都将附加一个计数器-content-1content-2。这是一个非常大的文件,所以我无法手动执行,关于如何执行此操作或使用js进行重组的任何建议将不胜感激!

{
    "Test": {
        "id": 3454534344334554345434,
        "details": {
            "text": "78679786787"
        },
        "content": {
            "text": 567566767656776
        },
        "content": {
            "text": 567566767656776
        },
        "content": {
            "text": 567566767656776
        }
    }
}
javascript parsing steam jsonstream
1个回答
2
投票

我知道这是一个Javascript问题,但我知道您需要在系统中加载文件,这是一个大文件。

对于此问题,如果您可以使用javascript之外的其他语言来解析文件,则可以使用AWK。 AWK可以在linux,Windows bash等环境下执行。

这里是代码:

awk 'BEGIN{a=0}/"content"/{a++;gsub("content","content-"a,$0); print $0}!/"content"/{print $0}' file.json
    {
        "Test": {
            "id": 3454534344334554345434,
            "details": {
                "text": "78679786787"
            },
            "content-1": {
            "content-1": {
                "text": 567566767656776
            },
            "content-2": {
            "content-2": {
                "text": 567566767656776
            },
            "content-3": {
            "content-3": {
                "text": 567566767656776
            }
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.