2016-06-08 66 views
1

我从服务传递回JSON对象,并使用JSON.stringify它转换为一个字符串,但并不如预期所要求的输出如下面的第一个例子:如何JSON对象字符串转换为Javascript数组

它所看起来像字符串化调用后的JSON对象:

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

它所需要的样子:

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

如何将JSON对象转换为可呈现的javascript数组?

我已经试过 -

  • 我打过电话不提供所需的格式第一字符串化如上图所示:

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

      }, 

回答

1

parsedJSON你可以使用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)

4

你可以使用数组,并建立一个新的与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);

2

的答案在这里的有效期为你的榜样,但这里的任意属性数量,解决方案和名字。

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) { 
 
    \t  return obj[key] 
 
     }) 
 
     return values.join(' ') 
 
    }) 
 

 
var result = JSON.stringify(flatObjects) 
 
console.log(result)

编辑:代码格式化。

1

这个答案也使用Array.prototype.map而是综合ES6 destructuringarrow functions,并template literals一个特别简洁的程序。

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" 
 
// ]

相关问题