我正在编写一个node-red的函数节点,它接受一个带有任意键值对的JSON对象:
{ 30000c690b61: "m8Jp_M7Lc0",
30000c290bdc65: "S3qg3Rkl8Y",
30000c290bdf1c: "KsLpfVrR4W",
30000c290be5d0: "oXasuCWV_q",
30000c29e618: "6Q67v-gJkS" … }
我想访问此对象中的第一个密钥对元素,存储它,然后将其删除。我尝试了很多东西,但由于它是节点红色,它似乎表现不同
答案 0 :(得分:7)
var firstKey = Object.keys(myObject)[0];
delete myObject[firstKey ];
答案 1 :(得分:2)
首先获得"" JSON对象表达式的元素很难,因为JSON对象不是有序集合。他们被命令""在JSON中只是因为它们必须具有字符序列化,这是一个有序的字符序列,但是两个具有不同排序属性的JSON对象表达式意味着传达相同的语义。
如果您愿意信任JavaScript环境以在迭代时保留密钥的顺序(这不是ECMAScript规范中定义的假设,但在您的环境的实现中可能也是如此),您可以:
var myObj = JSON.parse("{ ... }");
var firstKey = Object.keys(myObj)[0];
delete myObj[firstKey];
如果您不想做出这样的不安全假设,则需要读取JSON字符串并手动确定第一组引号之间的键名。这需要付出一些努力,因为您还必须处理可能出现在密钥名称内的转义引号。
答案 2 :(得分:0)
以下代码将从JSON对象获取第一个元素密钥对并删除它。
var resultJSON = '{ "30000c690b61": "m8Jp_M7Lc0",
"30000c290bdc65": "S3qg3Rkl8Y",
"30000c290bdf1c": "KsLpfVrR4W",
"30000c290be5d0": "oXasuCWV_q",
"30000c29e618": "6Q67v-gJkS"}';
var result = $.parseJSON(resultJSON);
$.each(result, function(k, v) {
//display the key and value pair
alert(k + ' is ' + v);
//For Delete the first key pair
delete result['k'];
exit;
});