- Ext JS 4: Convert JSON object to another JSON object using JavaScript
- {
- "d":
- [
- {"__type":"Web.Controls.Shared.GeneralService+DropdownKeyValuePair","key":"0","value":"one"},
- {"__type":"Web.Controls.Shared.GeneralService+DropdownKeyValuePair","key":"1","value":"two"},
- {"__type":"Web.Controls.Shared.GeneralService+DropdownKeyValuePair","key":"2","value":"three"}
- ]
- }
- {
- data:
- [
- {"key":"1", "value":"one"},
- {"key":"2", "value":"two"},
- {"key":"3", "value":"three"}
- ]
- }
- var statusDropdownStore = new Ext.data.Store({
- proxy: new Ext.ux.AspWebAjaxProxy({
- url: '/track/Controls/Shared/GeneralService.asmx/GetDropdownOptions',
- actionMethods: {
- create: 'POST',
- destroy: 'DELETE',
- read: 'POST',
- update: 'POST'
- },
- extraParams: {
- user_login: authUser,
- table_name: '[status]'
- },
- reader: {
- type: 'json',
- model: 'DropdownOption',
- root: 'd'
- },
- headers: {
- 'Content-Type': 'application/json; charset=utf-8'
- }
- })
- });
- Ext.define('Ext.ux.AspWebAjaxProxy', {
- extend: 'Ext.data.proxy.Ajax',
- require: 'Ext.data',
- buildRequest: function (operation) {
- var params = Ext.applyIf(operation.params || {}, this.extraParams || {}),
- request;
- params = Ext.applyIf(params, this.getParams(params, operation));
- if (operation.id && !params.id) {
- params.id = operation.id;
- }
- params = Ext.JSON.encode(params);
- request = Ext.create('Ext.data.Request', {
- params: params,
- action: operation.action,
- records: operation.records,
- operation: operation,
- url: operation.url
- });
- request.url = this.buildUrl(request);
- operation.request = request;
- return request;
- }
- });
- {
- xtype: 'combo',
- fieldLabel: 'Status',
- emptyText: 'Select a status...',
- store: statusDropdownStore,
- valueField: 'key',
- displayField: 'value',
- mode: 'remote', // or 'local'
- renderTo: document.body
- },
- var TheJsonA = JSON.parse(JsonA);
- TheJsonA = TheJsonA.d;
- var TheJsonB = {};
- TheJsonB.data = [];
- var TheObject = {};
- if (TheJsonA.length > 0) {
- for (var i = 0, LoopTimes = TheJsonA.length; i < LoopTimes; i++) {
- TheObject = {};
- TheObject.key = TheJsonA[i].key;
- TheObject.value = TheJsonA[i].value;
- TheJsonB.data.push(TheObject);
- }
- }
- TheJsonA = null; // if you need to discard the initial object
- [
- {"key":"1", "value":"one"},
- {"key":"2", "value":"two"},
- {"key":"3", "value":"three"}
- ]
- var old = {
- "d":
- [
- {"__type":"Web.Controls.Shared.GeneralService+DropdownKeyValuePair","key":"0","value":"one"},
- {"__type":"Web.Controls.Shared.GeneralService+DropdownKeyValuePair","key":"1","value":"two"},
- {"__type":"Web.Controls.Shared.GeneralService+DropdownKeyValuePair","key":"2","value":"three"}
- ]
- };
- old.data = old.d;
- delete old.d;
- for(var i=0,l=old.data.length;i<l;i++){
- delete old.data[i].__type;
- }
- var jsonA = {
- d: [
- {"__type":"Web.Controls.Shared.GeneralService+DropdownKeyValuePair","key":"0","value":"one"},
- {"__type":"Web.Controls.Shared.GeneralService+DropdownKeyValuePair","key":"1","value":"two"},
- {"__type":"Web.Controls.Shared.GeneralService+DropdownKeyValuePair","key":"2","value":"three"}
- ]
- };
- var jsonB = {
- data: []
- };
- var d = jsonA.d;
- for (var i=0; i<d.length; i++){
- var obj = {
- key : d[i].key,
- value : d[i].value
- };
- jsonB.data.push(obj);
- }
- console.log(JSON.stringify(jsonB));
- => {"data":[{"key":"0","value":"one"},{"key":"1","value":"two"},{"key":"2","value":"three"}]}