나는 JSON을 처음 사용하면서 어둠 속에서 범벅 거리고있는 Sencha Touch의 새로운 면책 조항부터 시작하겠습니다. 옳은 방향으로 어떤 도움이나 찌르는 것이 당신이 아는 것 이상으로 감사합니다!JSON 피드의 중첩 된 객체에 액세스 - Sencha Touch
내 앱이 공개 Google 스프레드 시트 JSON 피드에서 데이터를 가져 오도록하려고합니다. 내가 알아 낸 것에서부터, 현재 모델은 중첩 된 객체가 아닌 JSON 배열을 기반으로합니다. 중첩 된 객체를 액세스하고 반환하려면 어떻게해야합니까?
Ext.regModel('Count', {
fields: [{name:'$t'}]
});
this.list = new Ext.List({
itemTpl: new Ext.XTemplate('<div>{$t}</div>'),
loadingText: false,
store: new Ext.data.Store({
model: 'Count',
proxy: {
type: 'scripttag',
url : 'http://spreadsheets.google.com/feeds/cells/0AuYDRk91MX8-dHhkV29ZVkRGNjlvZjV4QVBIVmJubVE/odb/public/basic?range=A1&alt=json',
reader: {
type: 'json',
root: 'feed'
}
}
})
});
JSON 데이터 (여분의 물건이 될 필요는 차라리 게시하지 않는 게 좋을 이메일 주소를 포함하고 색인을 경우 모두 표시됩니다 위의 링크 제거) :
{
"feed":{
"entry":[{
"content":{
"type":"text",
"$t":"11"
}
}]
}
}
나는 경우, 배열을 사용하는 또 다른 JSON 피드를 사용하자. $ t에 해당하는 객체의 정수에 액세스하려면 어떻게해야하는지 알 수 없다. "entry"를 "feed"대신 루트로두면 "Uncaught TypeError : 속성 'length'을 읽지 못합니다."라는 오류 메시지가 나타납니다.
'root : 'feed.entry''와 같이 시도해보세요. 원하는 것을 한 걸음 더 가까이 가야합니다. – nelstrom
@nelstrom 감사합니다! 그것은 나를 좀 더 가깝게 만들었다. 자, 내 목록은 하나의 목록 항목을 생성합니다 (JSON 피드는 하나의 결과 만 가져옵니다). 그러나 $ t 객체 내용에는 여전히 액세스 할 수 없습니다. 내 업데이트 된 regModel은 다음과 같습니다 :'Ext.regModel ('Count', { fields : [{name : '$ t', 매핑 : 'content. $ t'}] }) ' – Kate
@nelstrom 사실, 잘 했어 !! 목록 항목 템플릿이 {$ t} 변수에서 해당 달러 기호를 좋아하지 않는다는 사실이 드러납니다. 매핑을 사용하여 임의의 이름으로 모델과 모델을 전환하면 작업이 시작됩니다! 'Ext.regModel ('Count', {fields : [{name : 'count', 매핑 : 'content. $ t'}]}))' – Kate