Javascript 在extjs中合并两个不同的json对象
假设我的第一个json对象是Javascript 在extjs中合并两个不同的json对象,javascript,json,extjs,extjs4,extjs4.1,Javascript,Json,Extjs,Extjs4,Extjs4.1,假设我的第一个json对象是 "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",
"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"
}
]
在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"
}
]
}
我相信您需要合并方法:
我相信您需要合并方法:
这不是一个特定于ExtJS的问题 如果您确实有两个对象
jvtdata
和detail
(而不是JSON字符串,您可以轻松地转换为对象),则可以简单地执行以下操作:
jvtdata.detail = detail
编辑:请参阅控制台了解此小提琴:这不是一个特定于ExtJS的问题 如果您确实有两个对象
jvtdata
和detail
(而不是一个JSON字符串,您可以很容易地将其转换为一个对象),那么只需执行以下操作:
jvtdata.detail = detail
编辑:请参阅控制台以获取此提琴:查看您对另一个答案的评论,以下是您要查找的内容(我想?):
看看你对另一个答案的评论,以下是你想要的(我想?): 可能就是你要找的
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)
};
可能就是你要找的
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)
};
下面是ExtJS的比较:
Ext.Object.equals(object1, object2)
下面是ExtJS的比较:
Ext.Object.equals(object1, object2)
实际上,这两个json对象是由此创建的:var jvdetailData=Ext.encode({details:Ext.pull(store_jvdtl.data.items,'data'));var jvheaderData=Ext.encode({jvtdata:Ext.pull(store_jvdr.data.items,'data')[0]});我尝试了您所做的,但实际上这两个json对象都不起作用:var jvdetailData=Ext.encode({details:Ext.pluck(store_jvdtl.data.items,'data'));var jvheaderData=Ext.encode({jvtdata:Ext.pull(store_jvdr.data.items,'data')[0]});我尝试了你所做的,但它对我不起作用。嗨,下面的答案对你有帮助吗?嗨,下面的答案对你有帮助吗?
Ext.pulk
自ExtJS 4.0.0以来已被弃用,使用Ext.Array.pulk
而不是根据#Darin KolevExt.pulk
自ExtJS 4.0.0以来已被弃用,使用Ext.Array.pull
代替根据Darin Kolev更新的