使用 javaScript 將鍵從鍵值對轉換為大寫

連卡

我正在嘗試使用 Javascript 將 JSON 中的鍵轉換為大寫。我在某種程度上是成功的。但是,它沒有以正確的方式創建數組。它在數組中的每個對象之前插入數字。

輸入:

{
  "id": "123",
  "retweetCheck": {
    "result": "OK",
    "checks": [
      {
        "cId": "123"
      },
      {
        "cId": "456"
      }
    ]
  },
  "tweetCheck": {
    "result": "OK",
    "cId": "345",
    "check": "Fail"
  }
}

將密鑰轉換為大寫的代碼:

    var responseContent = context.getVariable("response.content") || "";
    responseContent = JSON.parse(responseContent) || "";
    transformedCapitalizedObj = keysToCapitalCase(responseContent);
    var finalResponseObj = {
        Data: transformedCapitalizedObj
    };
    context.setVariable("response.content", JSON.stringify(finalResponseObj));

功能

function objEntries(obj) {
    const keys = Object.keys(obj);
    const keyValuePairs = keys.map(key => {
        const value = obj[key];
        return [key, value];
    });
    return keyValuePairs;
}
function keysToCapitalCase(objToProcess) {
    if (!objToProcess || typeof objToProcess !== "object") return null;
    var finalObj = {};
    objToProcess = objEntries(objToProcess);
    objToProcess.forEach(function (entry) {
        var key = entry[0];
        var value = entry[1];
        key = key.charAt(0).toUpperCase() + key.slice(1);
        if (typeof value == "object" || (value instanceof Array)) {
            value = keysToCapitalCase(value);
        }
        finalObj[key] = value;
    });
    return finalObj;
}

我目前得到的輸出是:

{
   "Data":{
      "RetweetCheck":{
         "Checks":{
            "0":{
               "CId":"123"
            },
            "1":{
               "CId":"456"
            }
         },
         "Result":"OK"
      },
      "Id":"123",
      "TweetCheck":{
         "CId":"345",
         "Check":"Fail",
         "Result":"OK"
      }
   }
}

但理想情況下,輸出應如下所示:

{
  "Data": {
    "Id": "123",
    "RetweetCheck": {
      "Result": "OK",
      "Checks": [
        {
          "CId": "123"
        },
        {
          "CId": "456"
        }
      ]
    },
    "TweetCheck": {
      "Result": "OK",
      "CId": "345",
      "Check": "Fail"
    }
  }
}

它基本上是在數組中的每個對象之前插入一個序列號而不是[]. 如何糾正這種情況。任何幫助都會創造奇蹟。

弗里德里希

如 {} 括號所示,您創建的是空對象而不是數組,而不是想要的 [] 括號。
要創建一個數組,只需將您的var finalObj = {};to更改var finalObj = [];
一個 ArrayfinalObj[key] = value將不再有效,您現在必須使用finalObj.push(value)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用鍵/值對將數組轉換為對象 Javascript

使用js將csv轉換為對象鍵值對

javascript將對象轉換為具有鍵值標籤的對像數組

如何使用打字稿中的自定義鍵將數組轉換為對像數組?

如何使用 python 將 CSV 文件中的值和鍵分開,使用 python 將其轉換為字典

使用javascript將單獨數組的結果轉換為一個對象

如何使用我自己的格式將 JSON 對象轉換為 javascript 文件

如何使用javaScript將嵌套的對像數組轉換為一個對像數組?

使用 SED 將特定列的小寫轉換為大寫

如何在 JavaScript 中將嵌套數組轉換為“鍵控”數組?

使用某些鍵模式將列表列表轉換為字典

使用特定鍵將 const 數組轉換為 JSON

Javascript 如何將對象存儲為鍵

在javascript中將數組轉換為對象(從1而不是0開始)

將重複數據從長轉換為寬,同時保留 R 中的鍵值對

在 JavaScript 中使用鍵值獲取對像數據

映射鍵值以使用 javascript 創建帶有嵌套對象的 json 結構

用javascript嵌套對像中的值交換鍵

使用 .reduce() 將數組轉換為對象

使用javascript將鍵和值添加到數組中

使用轉換器類型將每個鍵的值映射到另一種類型

如何使用 Javascript 將靜態/常量日期轉換為特定格式

使用 Javascript 將 Excel 工作表數據轉換為 HTML

如何使用 JavaScript 將多個數組轉換為 CSV 列?

如何使用正則表達式將大寫文本轉換為小寫文本並結合前瞻和後視

在 dart 中將字符串轉換為鍵值對或 JSON

如何在javascript中將嵌套對象轉換為對像數組?

如何將對像數組轉換為對象,鍵和值作為數組

如何使用 R 基於外部列表將值從 data.frame 轉換為 NA?