У меня такой json (длина 200):
{
id: 5,
date: "2018-05-05"
tmp: {
warranty: "no";
discount: "yes"
}
},
.... (and more)
Я хочу создать:
{
id: 5,
date: "2018-05-05"
warranty: "no";
discount: "yes"
},
Кто-нибудь может помочь мне преобразовать это?
Это массив объектов? пожалуйста, поставьте правильную структуру



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я создаю пример StackBlizt, чтобы узнать, как это сделать:
https://stackblitz.com/edit/angular-hezrsa
Посмотрите на метод flatJson ().
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
public obj = {};
private startObj= {
id: 5,
date: "2018-05-05",
tmp: {
warranty: "no",
discount: "yes"
}
};
constructor(){
this.flatJson();
}
flatJson():void{
for (var prop in this.startObj) {
console.info(prop);
if (typeof this.startObj[prop] == 'object'){
for (var nestedprop in this.startObj[prop]) {
this.obj[nestedprop] = this.startObj[prop][nestedprop];
}
} else{
this.obj[prop] = this.startObj[prop];
}
}
}
}
надеюсь, я вам помогу!
Я действительно, очень благодарен вам, но я использовал решение, указанное выше. В любом случае, спасибо.
Как я бы это сделал, используя новый синтаксис ES6.
например.
const a = [{
id: 5,
date: "2018-05-05",
tmp: {
warranty: "no",
discount: "yes"
}
}];
const ret = a.map(v => {
const {id, date, tmp: {warranty, discount}} = v;
return {id, date, warranty, discount};
});
console.info(ret);Спасибо, вы гений !! : D
var obj = {
id: 5,
date: "2018-05-05",
tmp: {
warranty: "no",
discount: "yes",
obj2: {
nestedone: 'yes'
}
}
}
var newObj = new Object();
addtoArr(obj);
function addtoArr(obj){
for(o in obj){
console.info("key" +o +"value" + obj[o]) ;
if (typeof obj[o] !='object'){
newObj[o] = obj[o];
console.info(newObj);
}
else {
return addtoArr(obj[o]);
}
}
};
console.info(newObj);
This will work everytime even if your nested json is much more nested than what you mentioned above.
Можете ли вы опубликовать свои испытания, чтобы помочь?