2012-02-22 111 views

回答

1

从JavaScript的角度来看,JSON格式仅仅是一个字符串。所以你可以用关联的方法来操作JSON字符串。 JSON。

// The original 
obj = { 
    children: [ 
    { 
     name:'Basic Ext Layouts', 
     expanded: false, 
     children:[ 
     { 
      name:'Absolute', 
      id:'absolute', 
      leaf:true, 
     }] 
    }] 
} 

// Transfer the object to a JSON string 
var jsonstr = JSON.stringify(obj); 

// HERE you do the transform 
var new_jsonstr = jsonstr.replace('"children"', '"mydata"'); 

// You probably want to parse the altered string later 
var new_obj = JSON.parse(new_jsonstr); 
+0

如果数据包含字符串“children”出于某种原因,这可能有可怕的连续性。至少应该使用正则表达式 – 2012-06-19 02:29:33

+0

谢谢。严重的问题在这里。我在这里用一个替换的''children''来更新,只是在JSON键上而不是一个普通的字符串。唯一的例外是这里应该注意的普通字符串“children”。 – steveyang 2012-06-21 02:56:47

+0

垃圾!为什么这是被接受的答案?这样的黑客 – 2012-09-05 22:26:17

3

是否有可能改变孩子MYDATA?

是的。设置treestore的代理使用阅读器root配置设置为'mydata'

var store = Ext.create('Ext.data.TreeStore', { 
    model: 'MyModel', 
    proxy: { 
     type: 'memory', 
     reader: { 
      type: 'json', 
      root: 'mydata' // << this is required 
     } 
    }, 
    root: { 
     myData: [ 
     { 
      name:'Basic Ext Layouts', 

这里是working example

+0

我想从外面添加json,我不希望它在同一个文件中,根据工作示例中的指定。 – Dhananjay 2012-02-23 05:57:59