2015-10-26 69 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'条目,那么在运行此代码后它也将消失。 –