Node.js 中 JSON 对象中的 JSON 对象 [关闭]
Posted
技术标签:
【中文标题】Node.js 中 JSON 对象中的 JSON 对象 [关闭]【英文标题】:JSON object within JSON objects in Node.js [closed] 【发布时间】:2016-01-26 04:30:55 【问题描述】:我是 node.JS 的新手,目前正在从事一个小型项目。 问题陈述:我想获取“window”的值,但想隐藏“window”键。在 Node.js 中有没有办法解决这个问题?
输入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"
]
【问题讨论】:
“隐藏”到底是什么意思? @Kevin B 我不想要“窗口”,即在输出 JSON 中看到的键。只需要显示它的值。 所以换句话说,你想删除widget.debug.window
,并将widget.debug.window.image
键/值对存储在widget.debug
上。
是的,你没看错
简单,将json转换为对象,进行替换,删除window属性,然后再次字符串化。
【参考方案1】:
试试这样的:
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”。
【讨论】:
请注意,您不需要 window_content。widget.debug = widget.debug.window
@KevinB 是的,你是对的 :)
另请注意,这将擦除widget.debug
的任何其他可能键。例如,如果原始 JSON 数据包含 widget.debug.foobar
条目,则在运行此代码后它也会消失。以上是关于Node.js 中 JSON 对象中的 JSON 对象 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
通过Mongoose(Node JS)在Mongo DB中插入没有JSON模式的JSON对象
如何在 Node JS 中读取文本文件并将其作为 JSON 对象返回?
在 Node.js 中响应 JSON 对象(将对象/数组转换为 JSON 字符串)