2015-04-03 129 views
1

我不知道如何綁定莫里斯甜甜圈圖表。我有一類叫做顧客:綁定莫里斯甜甜圈圖表

public class Customer { 

    private Long id; 

    private String name; 

    private String email; 

    private Address address; 

//+ constructors + getter and setters 

和一類叫做地址:

public class Address { 

    private Long id; 

    private String country; 

    private String city; 

    private String street; 

    private String zip; 

//+ constructors + getter and setters 

我休息控制器,它返回所有客戶在DB:

1: { 
    id: 2 
    name: "Sydney Garrett" 
    email: "[email protected]" 
    address: { 
      id: 38 
      country: "Spain" 
      city: "Madrid" 
      street: "P.O. Box 318, 7554 Natoque Avenue" 
      zip: "92394" 
      } 
    } 
2: { 
    id: 3 
    name: "Peter Phillips" 
    email: "[email protected]" 
    address: { 
      id: 78 
      country: "Spain" 
      city: "Vigo" 
      street: "6967 Id, Av." 
      zip: "11498" 
    } 
} 

現在,我想將Morris Donut與每個城市的城市名稱和客戶數量綁定(例如:馬德里20,維哥12,巴塞羅那30)

我試圖做這樣的事在JS代碼:

$.getJSON('http://localhost:8080/spring/customers/all', function(data){ 

    Morris.Donut({ 
     element: 'morris-donut-chart', 
     data: data 
     }) 

但我不知道如何準備的數據(從每個城市計數客戶)的js代碼。任何建議?

回答

1

我剛剛實現了類似的東西。 Morris無法對您的原始數據進行計數和分組,您需要在服務器端代碼中執行此操作。我將這個類用於我的數據點,並將它們的列表返回給我的Morris甜甜圈圖表。

public class DonutGraphDataPoint 
{ 
    public string label { get; set; } 
    public int value { get; set; } 
} 

所以,你將不得不操縱數據,以便每個標籤是你的城市和每一個值是你的計數。

所以一旦你實現它,返回給你莫里斯JSON結果應該是這樣的:

[{"label":"Madrid","value":20}, 
{"label":"Vigo","value":12}, 
{"label":"Barcelona","value":30}]