簡體   English   中英

使用sed修復不帶引號的json文件

[英]Repair json file without quotes using sed

如何使用sed或perl或任何shell腳本工具修復不帶引號的json文件? 那就是加回雙引號(例如“ glossary”)。 下面是示例json。 非常感謝!

{
    glossary: {
        title: "example glossary",
            GlossDiv: {
                title: "S",
                GlossList: {
                    GlossEntry: {
                        ID: "SGML",
                        SortAs: "SGML",
                        GlossTerm: "Standard Generalized Markup Language",
                        Acronym: "SGML",
                        Abbrev: "ISO 8879:1986",
                        GlossDef: {
                            para: "A meta-markup language, used to create markup languages such as DocBook.",
                            GlossSeeAlso: ["GML", "XML"]
                        },
                    GlossSee: "markup"
                }
            }
        }
    }
}

這種快速而骯臟的單線適用於您的示例。 但是,您的json格式必須與輸入示例一樣“漂亮打印”。 屬性名稱也應遵循以下模式: [a-zA-Z_]+

sed -r 's/(\s*)([a-zA-Z_]+)/\1"\2"/' file

它輸出:

{
    "glossary": {
        "title": "example glossary",
            "GlossDiv": {
                "title": "S",
                "GlossList": {
                    "GlossEntry": {
                        "ID": "SGML",
                        "SortAs": "SGML",
                        "GlossTerm": "Standard Generalized Markup Language",
                        "Acronym": "SGML",
                        "Abbrev": "ISO 8879:1986",
                        "GlossDef": {
                            "para": "A meta-markup language, used to create markup languages such as DocBook.",
                            "GlossSeeAlso": ["GML", "XML"]
                        },
                    "GlossSee": "markup"
                }
            }
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM