2015-04-03 134 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}]