Как переименовать дубликаты ключей в большом файле JSON? - PullRequest
0 голосов
/ 04 октября 2019

У меня большой файл, следующий за этим форматом. Первоначально я попытался проанализировать это в JavaScript с JSONStream и столкнулся с некоторыми проблемами . Я пытался найти способ изменить дубликаты ключей, чтобы мне было проще разобраться в этом. Например: вместо content каждому будет добавлен счетчик - content-1, content-2. Это очень большой файл, поэтому я не могу сделать это вручную, любые предложения о том, как я могу это сделать или реструктурировать с помощью js, будут с благодарностью!

{
    "Test": {
        "id": 3454534344334554345434,
        "details": {
            "text": "78679786787"
        },
        "content": {
            "text": 567566767656776
        },
        "content": {
            "text": 567566767656776
        },
        "content": {
            "text": 567566767656776
        }
    }
}

1 Ответ

1 голос
/ 04 октября 2019

Я знаю, что это вопрос Javascript, но я понимаю, что вам нужно загрузить файл в систему, и это большой файл.

Для этой проблемы вы можете использовать AWK , если вы можете использовать другой язык вне javascript для анализа файла. 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
            }
        }
    }
...