Vim:更正格式不正确的JSON文件

时间:2015-12-07 03:23:51

标签: json regex vim

背景

我有大量格式不正确的大型JSON文件。我想使用vim命令来纠正格式,使它们都是有效的JSON。

有关JSON文件的问题:

  1. 这些JSON文件中的所有键都未被"包围。
  2. 在非最后一个JSON条目的末尾没有,
  3. 输入(无效的JSON):

    ...
    ]
    id: "92E121F5-C705-4C2E-9839-0F8491BFC440"
    price: "2.00"
    options: [ ]
    }
    ...
    

    输出(有效JSON):

    ...
    ]
    "id": "92E121F5-C705-4C2E-9839-0F8491BFC440",
    "price": 2.00,
    "options": [ ]
    }
    ...
    

    问题:

    如何将输入转换为输出,如上所示?

    更新

    我正在使用VIM - Vi IMproved 7.3

1 个答案:

答案 0 :(得分:4)

  1. 这些JSON文件中的所有键都没有被“:

    包围

    :%s/^(\w*):/"\1":/

  2. 在非最后一个JSON条目的末尾没有:

    :%s/$/,/

    :%s/},$/}/

    :%s/,\n}$/\n}/

  3. 数字被“:

    包围

    :%s/"([0-9]+.[0-9]+)"/\1/