簡體   English   中英

如何在不知道密鑰的情況下獲取 JSON object 的第一個密鑰對元素並在節點紅色中將其刪除

[英]How to get first key pair element of JSON object without knowing key and deleting it in node red

我正在用 node-red 編寫一個 function 節點,它接收一個 JSON object 和任意鍵值對:

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

我想訪問這個 object 中的第一個密鑰對元素,存儲它,然后刪除它。 我嘗試了很多東西,但由於它是節點紅色的,所以它的行為似乎有所不同

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

獲取JSON對象表達式的“第一個”元素很困難,因為JSON對象不是有序集合。 它們在JSON中是“有序”的,因為它們必須具有字符序列化,這是一個有序的字符序列,但是兩個具有不同順序屬性的JSON對象表達式意味着傳達相同的語義。

如果您願意相信您的JavaScript環境在迭代時保留鍵的順序(這不是ECMAScript規范中定義的假設,但在您的環境的實現中可能是這樣),您可以:

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

如果您不想做出這樣的不安全假設,則需要讀取JSON字符串並手動確定第一組引號之間的鍵名。 這需要一些努力,因為您還必須處理可能出現在密鑰名稱內的轉義引號。

以下代碼將從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;
});
const defaultvalue =yourObject[Object.keys(yourObject).at(0)]

從 JSON Object 獲取第一個元素

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM