简体   繁体   English

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

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

My for loop looks like this, 我的for循环看起来像这样,

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

output on console looks like this, 控制台上的输出看起来像这样,

car1
car2
car3

i want to convert this data something like this, 我想像这样转换这些数据,

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

how can I convert it this way in javascript? 如何在JavaScript中以这种方式进行转换?

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

Just iterate over object and push it into array: 只需遍历对象并将其推入数组即可:

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

You can convert the array to JSON using var myJsonArray = JSON.stringify(myArray) . 您可以使用var myJsonArray = JSON.stringify(myArray)将数组转换为JSON。

If you're doing this conversion in an older browser, you can use a script . 如果您是在较旧的浏览器中执行此转换的,则可以使用脚本

In order to get your array from the JSON you created, you can use: 为了从创建的JSON获取数组,可以使用:

var myArray = JSON.parse(myJsonArray)

Also, bear in mind that when you use the same key for several objects in your JSON, the last key with the same name is the one that is going to be used . 另外,请记住,当您对JSON中的多个对象使用相同的键时, 具有相同名称的最后一个键就是将要使用的键

Here you have to use javascript object. 在这里,您必须使用javascript对象。 say

$scope.myArray = [];

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

carlist is a object which cars is a property then you can try this way: 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);
    }}

You just need to create a new array and push a new object to it in each iteration: 您只需要创建一个新数组,并在每次迭代中向其推送一个新对象:

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

Demo: 演示:

 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