2015-10-26 63 views
-10

我是node.JS的新手,目前正在開發一個小型項目。 問題陳述:我想獲取「窗口」的值,但想要隱藏「窗口」鍵。 Node.js中有這種方法嗎?Node.js中的JSON對象內的JSON對象

輸入JSON:

{ 
"widget": { 
      "debug": { 
         "window": { 
            "image": [ 
             { 
              "src": "Images/Sun.png", 
              "name": "sun1", 
              "hOffset": 250, 
              "vOffset": 250, 
              "alignment": "center" 
             }, 
             { 
              "src": "Images/Moon.png", 
              "name": "moon1", 
              "hOffset": 250, 
              "vOffset": 250, 
              "alignment": "center" 
             } 
            ] 
           } 
        } 
     } 
} 

輸出JSON:

{ 
"widget": { 
      "debug": { 
         "image": [ 
            { 
             "src": "Images/Sun.png", 
             "name": "sun1", 
              "hOffset": 250, 
              "vOffset": 250, 
              "alignment": "center" 
             }, 
             { 
              "src": "Images/Moon.png", 
              "name": "moon1", 
              "hOffset": 250, 
              "vOffset": 250, 
              "alignment": "center" 
             } 
           ] 

        } 
     } 
} 
+0

「hide」是什麼意思? –

+0

@Kevin B我不想要「窗口」,即在輸出JSON中看到的關鍵。只有它的值必須被顯示。 –

+0

換句話說,您想要移除'widget.debug.window',並在'widget.debug'上存儲'widget.debug.window.image'鍵/值對。 –

回答

2

嘗試是這樣的:

var widget = JSON.parse(json_string); 
var window_content = widget.debug.window; 
widget.debug = window_content; 
var new_json_string = JSON.stringify(widget); 

編輯:刪除widget.debug.window = false;因爲更換widget.debug將其刪除,並將其設置爲false會使其再次顯示爲「false」。

+0

注意你不需要window_content。 'widget.debug = widget.debug.window' –

+0

@KevinB是的,你是對的:) – Jonathan

+0

另外請注意,這將擦除'widget.debug'的任何其他可能的鍵。例如,如果原始的JSON數據包含一個'widget.debug.foobar'條目,那麼在運行此代碼後它也將消失。 –