2012-02-22 6 views

ответ

1

Формат JSON - это просто строка в точке зрения javascript. Таким образом, вы можете манипулировать строкой 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

Если по какой-либо причине данные содержат строку «дети», это может иметь ужасные решения. Должно быть использовано хотя бы регулярное выражение –

+0

Спасибо. Здесь серьезная проблема. Я обновил с заменой «дети» здесь до нуля на клавише JSON только вместо обычной строки. Единственное исключение - это нормальная строка «дети», о которой следует знать. – steveyang

+0

Crap! Почему это принятый ответ? Такой хак –

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