如果我有一个JSON对象,则说: />

评论

只是想学究一点,那是Javascript对象,而不是“ JSON对象”。JSON是Javascript对象的字符串表示形式。

#1 楼

简单:

delete myObj.test.key1;


评论


删除myObj.test ['key1'];也会工作。

–MyItchyChin
09年8月2日在19:40

因此将删除myObj ['test'] ['key1'];只要x是有效的变量名,您就可以互换what.x和what ['x'],因此即使删除myObj ['test']。key1也可以。

–泗南泰富
09年8月2日在20:21

fiddle.jshell.net/jr0enbua这是使用delete的示例

–杰克·费尔菲尔德
16年2月17日在16:58

这是我见过的最好的JavaScript关键字!

– Sandip Subedi
17年8月31日19:33

可能值得注意的是,delete关键字使Object发生突变,而这通常并不是确切的预期行为。保持不变性(对于平面对象)的一种方法是在执行删除操作之前,使用Object.assign或spread运算符对浅表进行克隆。

–完成
17年11月20日在1:27

#2 楼

只要知道要删除的密钥本身,选定的答案就可以使用,但是如果它确实是动态的,则需要使用[]表示法代替点表示法。例如:

var keyToDelete = "key1";
var myObj = {"test": {"key1": "value", "key2": "value"}}

//that will not work.
delete myObj.test.keyToDelete 


相反,您将需要使用:在删除之前要评估的值的符号。

评论


我喜欢动态的选择。在我自己的情况下,它有助于从json对象动态删除属性

–user1862764
16年5月19日在12:19

在检查上述解决方案时,已经考虑过如果它是一个变量的解决方案,谢谢您为我节省了时间

–zhihong
17年4月12日在12:05

嘿@praneetloke我有一个查询,我得到JSON数组,例如:[{\“ Countrycode \”:\“ DE \”,\“ count \”:\“ 3 \”}],但我想获得类似[{ “:” 3“}]像这样,但是我没有得到这个输出,请帮助我

–user7918630
17-10-31在13:52

@Brij您的问题与本页上的问题无关。在没有关于您的问题的太多上下文的情况下,我只能说您应该看看Lodash的lodash.com/docs/4.17.4#map。 map函数将允许您创建一个新数组,该数组具有原始数组的CountryCode的值作为新数组的键,而原始数组的count属性的值作为新数组的值。如果这没有帮助,您应该在Stackoverflow上开始一个新问题。您可能还希望查看是否可以让服务器以所需的方式返回响应。

– Praneetloke
17-10-31在18:29

@ ggb667,您不需要。 JSON对象的顺序无关紧要。无需过多解释,它就像一个字典(或地图)。如果要处理包含对象或其他值的数组,则顺序很重要,因为它们没有“键”。数组使用基于位置的索引,这就是为什么您总是使用基于整数的索引访问数组中的值的原因。

– Praneetloke
18年4月1日在17:16