Let's say my first json object is
"jvtdata":{
"tranid":"100001",
"trandate":"Sun Jan 20 2013 00:00:00 GMT+0800 (Taipei Standard Time)",
"trantype":"f"
}
and my second data is
"detail" : [
{
"id": "1",
"obj": "data1"
},
{
"id": "2",
"obj": "data2"
},
{
"id": "3",
"obj": "data3"
}
]
how do I make it like this in extjs 4?
"jvtdata":{
"tranid":"100001",
"trandate":"Sun Jan 20 2013 00:00:00 GMT+0800 (Taipei Standard Time)",
"trantype":"f",
"detail" : [
{
"id": "1",
"obj": "data1"
},
{
"id": "2",
"obj": "data2"
},
{
"id": "3",
"obj": "data3"
}
]
}
Let's say my first json object is
"jvtdata":{
"tranid":"100001",
"trandate":"Sun Jan 20 2013 00:00:00 GMT+0800 (Taipei Standard Time)",
"trantype":"f"
}
and my second data is
"detail" : [
{
"id": "1",
"obj": "data1"
},
{
"id": "2",
"obj": "data2"
},
{
"id": "3",
"obj": "data3"
}
]
how do I make it like this in extjs 4?
"jvtdata":{
"tranid":"100001",
"trandate":"Sun Jan 20 2013 00:00:00 GMT+0800 (Taipei Standard Time)",
"trantype":"f",
"detail" : [
{
"id": "1",
"obj": "data1"
},
{
"id": "2",
"obj": "data2"
},
{
"id": "3",
"obj": "data3"
}
]
}
Share
edited Jan 23, 2013 at 21:20
dbrin
15.7k4 gold badges58 silver badges85 bronze badges
asked Jan 23, 2013 at 18:37
JohnJohn
8383 gold badges25 silver badges40 bronze badges
1
- Hi, any answer below helpful to you? – dbrin Commented Jan 29, 2013 at 18:54
5 Answers
Reset to default 2This is not an ExtJS specific question.
If you truly have two Objects jvtdata
and detail
(and not a JSON string, which you can easily turn into an Object) you can simply do the following:
jvtdata.detail = detail
EDIT: See console for this fiddle: http://jsfiddle/FXT9k/
Ext.apply might be what you're looking for.
var first = {
"jvtdata":{
"tranid":"100001",
"trandate":"Sun Jan 20 2013 00:00:00 GMT+0800 (Taipei Standard Time)",
"trantype":"f"
}
};
var second = {
"detail" : [{
"id": "1",
"obj": "data1"
}, {
"id": "2",
"obj": "data2"
}, {
"id": "3",
"obj": "data3"
}]
};
var merged = {
jvtdata: Ext.apply(first.jvtdata, second)
};
Looking at your ment on another answer, here is what you are looking for(I think?):
var details = Ext.Array.pluck(store_jvdtl.data.items, 'data');
var jvtData = Ext.Array.pluck(store_jvhdr.data.items, 'data')[0];
jvtData["details"] = details;
jvtData = Ext.encode(jvtData);
I believe you need the merge method:
http://docs.sencha./ext-js/4-1/#!/api/Ext-method-merge
Here is paring the function for ExtJS:
Ext.Object.equals(object1, object2)