1

私の最初のjsonオブジェクトが

  "jvtdata":{
    "tranid":"100001",
    "trandate":"Sun Jan 20 2013 00:00:00 GMT+0800 (Taipei Standard Time)",
    "trantype":"f"
  }

私の2番目のデータは

 "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"
   }

]
  }
4

5 に答える 5

2

これは ExtJS 固有の質問ではありません。

本当に 2 つのオブジェクトがjvtdataあり、detail(簡単にオブジェクトに変換できる JSON 文字列ではない) 場合は、次の操作を行うだけです。

jvtdata.detail = detail

編集: このフィドルのコンソールを参照してください: http://jsfiddle.net/FXT9k/

于 2013-01-23T18:57:29.983 に答える
2

Ext.applyが探しているものかもしれません。

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)
};
于 2013-01-25T09:30:31.427 に答える
1

別の回答に対するあなたのコメントを見ると、ここにあなたが探しているものがあります(私は思いますか?):

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);
于 2013-01-23T19:56:55.130 に答える
0

merge メソッドが必要だと思います:

http://docs.sencha.com/ext-js/4-1/#!/api/Ext-method-merge

于 2013-01-23T18:44:15.303 に答える
0

ExtJSの関数を比較します。

Ext.Object.equals(object1, object2)
于 2014-06-19T09:07:15.833 に答える