2016-09-03 65 views
-4

我的JSON文件中有一個非常複雜的JSON結構。該文件有很多記錄。如果以後我想添加一個字段/屬性/數組,那麼最好的方法是什麼?我必須將其添加到每個記錄的權利?如何更新JSON結構

澄清更多:我們稍後再說我需要添加一個額外的數組到我的主JSON結構。是否有捷徑可尋?或者,如果我的JSON文件中有100個記錄/對象,我是否必須手動添加新的字段/屬性/數組? (不講程序做的。)

例如,讓我們說這代表了我的JSON文件中的一個記錄......

"devices": [ 
    { 
     "deviceName": "ABC 6 Plus", 
     "deviceShortName": "ABC6plus", 
     "productId": "223311", 
     "dropdowns": [ 
      { 
       "dropDownText": "models:", 
       "dropDownItems": [ "ABC6 Plus", "ABC6s Plus" ] 
      }, 
      { 
       "dropDownText": "logo:", 
       "dropDownItems": [ "Exposed Logo", "Covered Logo" ] 
      } 
     ], 
     "imagewidth": "400", 
     "skinPositions": [ 
      { "side": "4422" }, 
      { "top": "3322" }, 
      { "bottom": "1122" } 
     ], 
     "invalidSkins": [ 
      "yellow" 
     ] 
    } 

所以,讓我們說我有一個JSON文件,這些記錄100 。現在,我想將「productName」鍵/值添加到數據集。我是否必須手動將其添加到每個記錄?

"productName": "" 

或者是有編輯等,我可以很快做到這一點?我希望這是有道理的。

回答

0

首先你的問題需要更多的澄清。

使用你最喜歡的編程語言來獲取所有的JSON記錄並在它們上循環,將這個字段添加到每個JSON記錄中,然後將它們寫入你使用的任何存儲(DB,File,..)中。

或者您可以通過處理找不到的異常從另一端處理此問題。 例如:在檢索JSON記錄是否有此字段的情況下,如果沒有,則不處理它。

+0

謝謝@MohamedSaeed ....請看我澄清的OP。 – WebDevGuy2

+0

如果您使用Sublime Text編輯器,您可以使用它的搜索功能,並通過在find:(\ {\ s。*「deviceName」:。* ?,)中使用並替換:$ 1 \ n「productName」替換正則表達式函數:「」 , –

+0

只需複製Sublime中的所有JSON記錄,然後使用查找並全部替換 –

0

我假設你是指記錄數組。 由於您沒有提到的任何結構和您使用的語言,藉此例如:(JavaScript的)

var a = {}; 
a.b = []; 
a.b.c = {}; 
//a is populated 

現在的結構是「具有屬性B,其是性質C的陣列「 所以,如果你想另一個屬性添加 」d「,以 」b「(b數組),你可以使用: 的forEach()函數

對於給出的示例,

a.b.forEach(function(record){ 
    record['d'] = 'new property' //or anything 
}) 

現在,「b」的每個記錄都會有一個正確的ty「d」。

+0

謝謝@Kandhan ....請參閱我的已澄清的OP。我不一定希望以編程方式執行此操作。 – WebDevGuy2

+0

我想你必須以編程的方式來做。它的幾行代碼,就像我上面提到的那樣。 – Kandhan