簡體   English   中英

如何將JSON對象字符串轉換為Javascript數組

[英]How to convert a JSON object string to a Javascript array

我從服務傳遞了一個JSON對象,並使用JSON.stringify將其轉換為字符串,但是所需的輸出與下面的第一個示例所示的期望的不同:

在JSON對象上進行stringify調用后的樣子

[{"RID":"98798","appName":"TestApp"},{"RID":"98799","appName":"TestApp Two"}]

需要什么樣子:

["98798 TestApp","98799 TestApp Two"];

如何將JSON對象轉換為可顯示的javascript數組?

我嘗試過的-

  • 我嘗試調用first stringify,但沒有給出所需的格式,如上所示:

    var ridAppList = JSON.stringify(dataRID);

  • 我還嘗試使用parseJSON將該字符串化的字符串轉換為JS數組,但得到類似- [object Obect], [object Object]

    var ridAppList = $.parseJSON('[' + ridAppList + ']');

這是上下文的完整分配。 在Ajax GET調用的成功函數內,返回JSON對象

           success: function (result) {
                var dataRID;
                dataRID = result;
                ridAppList = JSON.stringify(dataRID);
                alert(ridAppList);

            },

您可以使用該數組並使用Array#map構建一個新Array#map

 var array = [{ "RID": "98798", "appName": "TestApp" }, { "RID": "98799", "appName": "TestApp Two" }], result = array.map(function (a) { return a.RID + ' ' + a.appName; }); console.log(result); 

此處的答案對您的示例有效,但這是任意屬性數量和名稱的解決方案。

 var flatObjects = [ {"RID":"98798","appName":"TestApp"}, {"RID":"98799","appName":"TestApp Two"}, {"ABB":"98799","appMode":"Test", "feature": 2} ].map(function (obj) { var values = Object.keys(obj).map(function (key) { return obj[key] }) return values.join(' ') }) var result = JSON.stringify(flatObjects) console.log(result) 

編輯:代碼格式。

解析 JSON您可以像這樣使用map()

 var string = [{"RID":"98798","appName":"TestApp"},{"RID":"98799","appName":"TestApp Two"}]; var result = string.map(function(e) { return e.RID += ' ' + e.appName; }); console.log(result) 

或者使用ES6,您可以執行此操作

 var string = [{"RID":"98798","appName":"TestApp"},{"RID":"98799","appName":"TestApp Two"}]; var result = string.map(e => e.RID += ' ' + e.appName); console.log(result) 

此答案還使用Array.prototype.map,但結合了ES6 解構箭頭功能模板文字,從而實現了特別簡潔的過程。

 var input = [ {"RID":"98798","appName":"TestApp"}, {"RID":"98799","appName":"TestApp Two"} ]; var output = input.map(({RID, appName})=> `${RID} ${appName}`); console.log(output); // [ // "98798 TestApp", // "98799 TestApp Two" // ] 

暫無
暫無

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

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