繁体   English   中英

将包含数据列表的对象转换为json数组

[英]Converting object containing list of data to json array

我的for循环看起来像这样,

var myObj = data.response.carTypes;
  for (var key in myObj) {
    if (myObj.hasOwnProperty(key)) {
      console.log(myObj[key]);
    }}

控制台上的输出看起来像这样,

car1
car2
car3

我想像这样转换这些数据,

$scope.myArray = [{"cars":car1}, {"cars":car2}, {"cars":car3}]

如何在JavaScript中以这种方式进行转换?

您可以使用var json = JSON.stringify(jsObject)var jsObject = JSON.parse("json string")

只需遍历对象并将其推入数组即可:

var myObj = data.response.carTypes;
var myArr = [];
for (var key in myObj) {
    if (myObj.hasOwnProperty(key)) {
      myArr.push(myObj[key]);
    }
}
console.log(myArr);

您可以使用var myJsonArray = JSON.stringify(myArray)将数组转换为JSON。

如果您是在较旧的浏览器中执行此转换的,则可以使用脚本

为了从创建的JSON获取数组,可以使用:

var myArray = JSON.parse(myJsonArray)

另外,请记住,当您对JSON中的多个对象使用相同的键时, 具有相同名称的最后一个键就是将要使用的键

在这里,您必须使用javascript对象。

$scope.myArray = [];

var carlist.cars="";
var carlist={};

carlist是一个对象,cars是一个属性,那么您可以尝试以下方式:

var myObj = data.response.carTypes;
for (var key in myObj) {
    if (myObj.hasOwnProperty(key)) {
      carlist.cars=myObj[key];
      myArray.push(carlist);
      console.log(myArray);
    }}

您只需要创建一个新数组,并在每次迭代中向其推送一个新对象:

$scope.myArray = [];
for (var key in myObj) {
  if (myObj.hasOwnProperty(key)) {
    $scope.myArray.push({cars:myObj[key]});
  }
};

演示:

 var myObj = { a: "Car1", b: "Car2", c: "Car3" }; var carsArray = []; for (var key in myObj) { if (myObj.hasOwnProperty(key)) { carsArray.push({cars:myObj[key]}); } }; console.log(carsArray); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM