0

入力が何らかの形式のように見える必要があるグラフ作成ライブラリを使用しています。この形式は JSON のように見えますが、そうではありません。ここでは、形式についてのアイデアを得るためにいくつかのデータを共有します。

[{
                    year: 2005,
                    income: 23.5,
                    expenses: 18.1
                }, {
                    year: 2006,
                    income: 26.2,
                    expenses: 22.8
                }, {
                    year: 2007,
                    income: 30.1,
                    expenses: 23.9
                }, {
                    year: 2008,
                    income: 29.5,
                    expenses: 25.1
                }, {
                    year: 2009,
                    income: 24.6,
                    expenses: 25.0
                }];

このリンクで完全な例を見ることができます。私の最初のテストでは、私は使用しましString.concat(anotherString)たが、快適ではないことを保証します. このフォーマットを提供する Java API はありますか? 前もって感謝します。

4

3 に答える 3

1

その形式と JSON の唯一の違いは、文字列から二重引用符を削除する必要があるように見えます。したがって、 data.replaceAll("\"", ""); が仕事をします。

しかし実際には、例を読むと、有効な JSON を受け入れる必要があります。次のような $.ajax() メソッドを使用してみてください。

AmCharts.ready(function () {$.ajax({
       url: '/mydata/',
       dataType: 'json',
       data: undefined,
       success: function(chartData) {
                // SERIAL CHART
                chart = new AmCharts.AmSerialChart();
                chart.dataProvider = chartData;
                chart.categoryField = "year";

                // AXES
                // category
                var categoryAxis = chart.categoryAxis;
                categoryAxis.gridAlpha = 0.1;
                categoryAxis.axisAlpha = 0;
                categoryAxis.gridPosition = "start";

                // value
                var valueAxis = new AmCharts.ValueAxis();
                valueAxis.stackType = "regular";
                valueAxis.gridAlpha = 0.1;
                valueAxis.axisAlpha = 0;
                chart.addValueAxis(valueAxis);

                // GRAPHS
                // first graph    
                var graph = new AmCharts.AmGraph();
                graph.title = "Europe";
                graph.labelText = "[[value]]";
                graph.valueField = "europe";
                graph.type = "column";
                graph.lineAlpha = 0;
                graph.fillAlphas = 1;
                graph.lineColor = "#C72C95";
                chart.addGraph(graph);

                // second graph              
                graph = new AmCharts.AmGraph();
                graph.title = "North America";
                graph.labelText = "[[value]]";
                graph.valueField = "namerica";
                graph.type = "column";
                graph.lineAlpha = 0;
                graph.fillAlphas = 1;
                graph.lineColor = "#D8E0BD";
                chart.addGraph(graph);

                // third graph                              
                graph = new AmCharts.AmGraph();
                graph.title = "Asia-Pacific";
                graph.labelText = "[[value]]";
                graph.valueField = "asia";
                graph.type = "column";
                graph.lineAlpha = 0;
                graph.fillAlphas = 1;
                graph.lineColor = "#B3DBD4";
                chart.addGraph(graph);

                // LEGEND                  
                var legend = new AmCharts.AmLegend();
                chart.addLegend(legend);

                // WRITE
                chart.write("chartdiv");
            });
       }
     });

(申し訳ありませんが、私は JavaScript を書くのが得意ではありませんが、アイデアはそこにあると思います)。また、amCharts の API を使用すると、ローカル URL を直接確認できるようになるかもしれません。その後、JSON データを REST 呼び出しとしてルーティングするだけで済みます。

于 2012-04-11T22:01:33.577 に答える
0

解決策は簡単です:

var chartData = eval(json_data);

よろしくお願いします

于 2012-04-25T10:00:15.793 に答える
0

この API のデータ関連のブログ ページを確認してください

http://blog.amcharts.com/2011/03/amcharts-javascript-tutorials-part-2.html

このチュートリアルでは、多くの例とコード スニペットを使用して、この API でデータを処理する際のすべての核心について説明していると思います

于 2012-04-11T22:24:44.083 に答える