2016-11-08 103 views
0

如何修復不使用sed或perl或任何shell腳本工具引用的json文件?即加回雙引號(例如「詞彙表」)。以下是示例json。非常感謝!使用sed修復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" 
       } 
      } 
     } 
    } 
} 
+0

請加預期輸出爲清楚起見 – Sundeep

回答

0

這個快速和骯髒的單線作品爲您的例子。但是,您的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" 
       } 
      } 
     } 
    } 
} 
+0

它完全在我的情況。感謝拯救我的生命! –