json-restyle
Version:
Rename keys of JSON data
69 lines (68 loc) • 5.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
var JsonRestyleService = /** @class */ (function () {
function JsonRestyleService() {
}
/**
*
* PURPOSE : Rename key in json object
* jsonObject : Single JSON object/Array of JSON objects
* mappings : { Old key Name1 : New key Name1, Old key Name2 : New key Name2, ... }
* TODO : Nested JSON Object
* @param {?} jsonObject
* @param {?} mappings
* @return {?}
*/
JsonRestyleService.prototype.reform = /**
*
* PURPOSE : Rename key in json object
* jsonObject : Single JSON object/Array of JSON objects
* mappings : { Old key Name1 : New key Name1, Old key Name2 : New key Name2, ... }
* TODO : Nested JSON Object
* @param {?} jsonObject
* @param {?} mappings
* @return {?}
*/
function (jsonObject, mappings) {
/** @type {?} */
var data;
if (jsonObject instanceof Array) {
data = JSON.parse(JSON.stringify({
array: jsonObject
})).array;
for (var i = 0; i < data.length; i++) {
for (var property in mappings) {
data[i][mappings[property]] = data[i][property];
delete data[i][property];
}
}
return data;
}
else {
if (jsonObject instanceof Object) {
data = JSON.parse(JSON.stringify(jsonObject));
for (var property in mappings) {
data[mappings[property]] = data[property];
delete data[property];
}
return data;
}
}
return jsonObject;
};
JsonRestyleService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] },
];
/** @nocollapse */
JsonRestyleService.ctorParameters = function () { return []; };
/** @nocollapse */ JsonRestyleService.ngInjectableDef = i0.defineInjectable({ factory: function JsonRestyleService_Factory() { return new JsonRestyleService(); }, token: JsonRestyleService, providedIn: "root" });
return JsonRestyleService;
}());
export { JsonRestyleService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1yZXN0eWxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9qc29uLXJlc3R5bGUvIiwic291cmNlcyI6WyJqc29uLXJlc3R5bGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0lBTXpDO0tBQWlCOzs7Ozs7Ozs7OztJQVFWLG1DQUFNOzs7Ozs7Ozs7O2NBQUMsVUFBVSxFQUFFLFFBQVE7O1FBQ2hDLElBQUksSUFBSSxDQUFNO1FBQ2QsRUFBRSxDQUFDLENBQUMsVUFBVSxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDaEMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDekIsS0FBSyxFQUFFLFVBQVU7YUFDbEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ2hCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUNqQyxHQUFHLENBQUMsQ0FBQyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDO29CQUM5QixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUNoRCxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDMUI7YUFDRjtZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUM7U0FDYjtRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sRUFBRSxDQUFDLENBQUMsVUFBVSxZQUFZLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ2pDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDOUMsR0FBRyxDQUFDLENBQUMsSUFBSSxRQUFRLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDMUMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQ3ZCO2dCQUNELE1BQU0sQ0FBQyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBQ0QsTUFBTSxDQUFDLFVBQVUsQ0FBQzs7O2dCQW5DckIsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7Ozs7NkJBSkQ7O1NBS2Esa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBKc29uUmVzdHlsZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4vKioqXG4gKiBQVVJQT1NFICAgIDogUmVuYW1lIGtleSBpbiBqc29uIG9iamVjdFxuICoganNvbk9iamVjdCA6IFNpbmdsZSBKU09OIG9iamVjdC9BcnJheSBvZiBKU09OIG9iamVjdHNcbiAqIG1hcHBpbmdzICAgOiB7IE9sZCBrZXkgTmFtZTEgOiBOZXcga2V5IE5hbWUxLCBPbGQga2V5IE5hbWUyIDogTmV3IGtleSBOYW1lMiwgLi4uIH1cbiAqIFRPRE8gICAgICAgOiBOZXN0ZWQgSlNPTiBPYmplY3RcbiAqL1xuICBwdWJsaWMgcmVmb3JtKGpzb25PYmplY3QsIG1hcHBpbmdzKSB7XG4gICAgbGV0IGRhdGE6IGFueTtcbiAgICBpZiAoanNvbk9iamVjdCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICBkYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgIGFycmF5OiBqc29uT2JqZWN0XG4gICAgICAgICAgICB9KSkuYXJyYXk7XG4gICAgICBmb3IgKGxldCBpPTA7IGk8ZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiBtYXBwaW5ncykge1xuICAgICAgICAgIGRhdGFbaV1bbWFwcGluZ3NbcHJvcGVydHldXSA9IGRhdGFbaV1bcHJvcGVydHldO1xuICAgICAgICAgIGRlbGV0ZSBkYXRhW2ldW3Byb3BlcnR5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChqc29uT2JqZWN0IGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGpzb25PYmplY3QpKTtcbiAgICAgICAgZm9yICh2YXIgcHJvcGVydHkgaW4gbWFwcGluZ3MpIHtcbiAgICAgICAgICBkYXRhW21hcHBpbmdzW3Byb3BlcnR5XV0gPSBkYXRhW3Byb3BlcnR5XTtcbiAgICAgICAgICBkZWxldGUgZGF0YVtwcm9wZXJ0eV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBqc29uT2JqZWN0O1xuICB9XG59XG4iXX0=