Как изменить структуру JSON, чтобы выглядеть как другой JSon структуры

голоса
2

Я хочу изменить свою структуру JSON, как я могу это сделать?

им получить JSON, который выглядит следующим образом:

 body: {
     111111: {
         name: exp1,
         status: 10000
     },
     222222: {
         name: exp2,
         status: 20000
     },
     333333: {
         name: exp3,
         status: 30000
     }
 }

но мне нужно в этой структуре:

 body: {
     bulks: [{
         id: 111111,
         name: exp1,
         status: 100000
     }, {
         id: 222222,
         name: exp2,
         status: 200000
     }, {
         id: 333333,
         name: exp3,
         status: 300000
     }]
 }

Причина в моем HTML я хочу прочитать это следующим образом:

<div *ngIf=showingList>
  <div class=list-bg  *ngFor=#bulk of listBulks | async>
    ID: `bulk`.`id` name of item: `bulk`.`name`
  </div>
</div>
Задан 25/07/2016 в 10:59
пользователем
На других языках...                            


2 ответов

голоса
2

Вот мое решение.

var req = {

  "111111": {
    "name": "exp1",
    "status": 10000
  },
  "222222": {
    "name": "exp2",
    "status": 20000
  },
  "333333": {
    "name": "exp3",
    "status": 30000
  }
}


var res = {
	bulks: []
};
for (var key in req) {
  if (req.hasOwnProperty(key)) {
    var temp = req[key];
    temp["id"] = key;
    res.bulks.push(temp);
  }
}

console.log(res);

Ответил 25/07/2016 в 11:09
источник пользователем

голоса
1

Вы можете сделать это с помощью уменьшения:

var body = {
    "111111": {
        "name": "exp1",
        "status": 10000
    },
    "222222": {
        "name": "exp2",
        "status": 20000
    },
    "333333": {
        "name": "exp3",
        "status": 30000
    }
}

var bodyArray = Object.keys(body).reduce(function(result, key) {
    var item = body[key];
    item.id = key;
    result.push(item)
    return result;
}, []);
Ответил 25/07/2016 в 11:09
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more