2014-01-10 3 views
0

로컬 호스트에이 JSon이 있습니다.중첩 된 Json을 파이 차트에 표시하는 방법은 무엇입니까?

{ 
    "sucess": true, 
    "total":150, 
    "casa": [{ 
     "name": { 
      "mentor": "stark" 
      }, 
     "data":60 
    },{ 
     "name":"baratheon", 
     "data":50 
    },{ 
     "name":"lannister", 
     "data":40 
    },{ 
     "name":"baratheon", 
     "data":30 
    },{ 
     "name":"greyjoy", 
     "data":20 
    },{ 
     "name":"tyrell", 
     "data":10 
    }] 
} 

그리고이 Js.

Ext.onReady(function() { 

    Ext.define('User', { 
       extend: 'Ext.data.Model', 
       fields: [ { 
        name: 'name', 
        type: 'string' 
       }, { 
        name: 'data', 
        type: 'int' 
       }] 
      }); 

      var store= Ext.create('Ext.data.Store', { 
        storeId: 'casas', 
        model: 'User', 
        autoLoad: true, 
        proxy: { 
         type: 'ajax', 
         url: 'lala1.json', 
         reader: { 
          type: 'json', 
          root: 'casa' 
         } 
        } 
       }); 

     Ext.create('Ext.chart.Chart', { 
      renderTo: 'myExample', 
      width: 450, 
      height: 320, 
      legend: { 
       position: 'right' 
      }, 
      animate: true, 
      store: store, 
      theme: 'Base:gradients', 
      series: [{ 
       type: 'pie', 
       angleField: 'data', 

       showInLegend: true, 
       tips: { 
        trackMouse: true, 
        width: 140, 
        height: 28, 

        renderer: function(storeItem, item) { 
         var total = 0; 
         store.each(function(rec) { 
          total += rec.get('data'); 
         }); 
         this.setTitle(storeItem.get('name') + ': ' +  Math.round(storeItem.get('data')/total * 100) + '%'); 
        } 
       }, 
       highlight: { 
        segment: { 
         margin: 20 
        } 
       }, 
       label: { 
        field: 'name', 
        display: 'rotate', 
        contrast: true, 
        font: '18px Arial' 
       } 
      }] 
     }); 
    }); 

그리고 멘토의 이름을 표시하려고 할 때마다 원형 차트의 [object Object]가 필드에 표시됩니다. 나는 무엇인가 놓쳤다? 나는 이미 이것에 관해 약간의 지위를 여기에서 읽었다. 그러나 그들 중의 누구도 나의 문제를 고쳤다, 누군가 나를 도울 수 없다? 당신이 당신의 JSON 변경에 extjs처럼 보이도록 구조를 변경할 수있는 경우

+0

이름에 멘토 이름이있는 개체가 포함되어있을 때 제목으로 표시 할 내용을 선택하십시오. 그냥 멘토 이름이야? – Akatum

+0

예, 멘토 이름입니다. 그리고 지금 내 유일한 결과는 [object object]입니다. –

답변

0

을 기대 :

"name": "stark", 
"data":60 

대신

"name": { 
    "mentor": "stark" 
}, 
"data":60 

당신의 JSON 제 3 자 소스에서 유래하는 경우에이 차트를 그리기 전에 데이터를 변환하십시오. 이를 달성하는 방법은 저장소의 load event을 사용하여 데이터를 변환하는 것입니다. 그러면 레코드를 매개 변수로 가져옵니다.

+0

이 Json은 내가해야 할 일이고,이 Json은 내게 이런 식으로 중첩 될 것입니다.이 경우에는 멘토 (mentor)에 대한 가치를 얻으려고 노력하고 있지만 파이 차트에 표시하려면 ' [object Object] –

+0

그래서이 json은 타사 출처에서 왔습니까? –

관련 문제