javascript 如何在不知道key的情况下获取JSON对象的第一个key对元素并在节点red中删除它

r6hnlfcb  于 2023-06-04  发布在  Java
关注(0)|答案(5)|浏览(257)

我在node-red中编写了一个函数节点,它接收一个JSON对象,该对象具有任意的key瓦尔对:

{ 30000c690b61: "m8Jp_M7Lc0",
  30000c290bdc65: "S3qg3Rkl8Y", 
  30000c290bdf1c: "KsLpfVrR4W", 
  30000c290be5d0: "oXasuCWV_q", 
  30000c29e618: "6Q67v-gJkS" … }

我想访问此对象中的第一个密钥对元素,存储它,然后删除它。我已经尝试了多种方法,但由于它是节点红色的,因此它的行为似乎有所不同

hlswsv35

hlswsv351#

var firstKey = Object.keys(myObject)[0];
delete myObject[firstKey ];
b1zrtrql

b1zrtrql2#

获取JSON对象表达式的“第一个”元素是很困难的,因为JSON对象并不是有序集合。它们在JSON中是“有序的”,只是因为它们必须具有字符串序列化,即字符的有序序列,但是具有不同顺序属性的两个JSON对象表达式旨在传达相同的语义。
如果你愿意相信你的JavaScript环境在迭代时保持键的顺序(这不是ECMAScript规范中定义的假设,但在你的环境实现中可能是真的),你可以这样做:

var myObj = JSON.parse("{ ... }");
var firstKey = Object.keys(myObj)[0];
delete myObj[firstKey];

如果您不想做出这样一个不安全的假设,则需要读取JSON字符串并手动确定第一组引号之间的键名。这涉及到一些工作,因为您还必须处理可能出现在键名本身中的转义引号。

fcwjkofz

fcwjkofz3#

下面的代码将从JSON对象中获取First元素密钥对并将其删除。

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;
});
lmvvr0a8

lmvvr0a84#

const defaultvalue =yourObject[Object.keys(yourObject).at(0)]

从JSON对象获取第一个元素

xzabzqsa

xzabzqsa5#

first_key = next(iter(json))
first_value = json[first_key]

相关问题