【问题标题】:Create JSON data NVD3 Chart using Java使用 Java 创建 JSON 数据 NVD3 图表
【发布时间】:2014-10-11 02:33:13
【问题描述】:

我正在开发 NVD3 图表,需要为图表创建 JSON 数据,如下所示:

[{ 
  "key" : "North America" , 
  "values" : [ [ 1025409600000 , 23.041422681023] , [ 1028088000000 , 19.854291255832] ]
},

{ 
  "key" : "Africa" , 
  "values" : [ [ 1025409600000 , 23.041422681023] , [ 1028088000000 , 19.854291255832] ]
},

{ 
  "key" : "South America" , 
  "values" : [ [ 1025409600000 , 23.041422681023] , [ 1028088000000 , 19.854291255832] ]
}]

有人可以帮我使用 Java 创建上面的 JSON 数据,因为我正在尝试创建这个结构,因为过去 3 个小时还没有成功。

这是 Plunker 链接:Stacked Area Chart NVD3

这是我想用 JAVA 创建的实时 JSON 数据示例:JSON example data

【问题讨论】:

  • 我不确定 NVD3 是否适用于 Java!还是你的意思是 JavaScript?
  • 谢谢。我在服务器上进行 AJAX 调用并将 JSON 响应发送回客户端 HTML 并呈现数据以创建图表。它适用于我在服务器(Java)上创建的发送回客户端的字符串数据。唯一的问题是制作上述结构的 JSON 数据。
  • 我看到你没有理解我的问题,无缘无故投了反对票。你曾经在 Java 中工作过吗?不确定 NVD3 在 Java 中不起作用是什么意思,我必须替换 JSON 数据,这是对服务器的 AJAX 调用。你能告诉我投反对票的理由吗?
  • 如果你提到了I am making AJAX call on server and sending JSON response back to client side HTML and render the data to create charts.,我想问题会更清楚。
  • 正如我在标题中明确提到的那样,我只想使用 Java 为 NVD3 图表创建 JSON 数据。我想知道你为什么在给我反对票之前没有问我。如果你很慷慨,请三思而后行给任何人投反对票,否则在投票前澄清或永远不要表现出你的消极天才方法,这是我对你的建议。无论如何下面是解决方案:

标签: java json nvd3.js


【解决方案1】:

这是我自己找到的解决方案:

import org.json.JSONArray;
import org.json.JSONObject;

public class CreateNVD3JSONDataJava {

public static void main(String[] args) {

    JSONObject jo = new JSONObject();
    jo.put("values", new JSONArray(new Long[][]{{1025409600000L,23L},{1028088000000L,19L},{1030766400000L,21L},{1033358400000L,22L}}));     
    jo.put("key", "North America");     

    JSONArray ja = new JSONArray();
    ja.put(jo);
    ja.put(jo); 
    ja.put(jo); 

    System.out.println(ja);
  }
}

【讨论】:

  • 除非您在“现实生活”中需要三个 jo 对象,因为值会有所不同。不要错误地使用单个对象并在 put 操作之间更改它,因为您将更改您已经“放置”的值。
  • 我完全同意。谢谢!我编辑了如下代码:
  • (在构造 JSON 时重复使用单个对象/数组的错误发生的频率令人惊讶。)
  • 我相信这不是我们讨论的实时数据处理,只是想知道如何创建数据。
【解决方案2】:

修改后的代码:

import org.json.JSONArray;
import org.json.JSONObject;

public class CreateNVD3JSONDataJava {

public static void main(String[] args) {

    JSONArray ja = new JSONArray();

    JSONObject jo = new JSONObject();
    jo.put("values", new JSONArray(new Long[][]{{1025409600000L,23L},{1028088000000L,19L},{1030766400000L,21L},{1033358400000L,22L}}));     
    jo.put("key", "North America"); 
    ja.put(jo);

    jo = new JSONObject();
    jo.put("values", new JSONArray(new Long[][]{{1025409600000L,23L},{1028088000000L,19L},{1030766400000L,21L},{1033358400000L,22L}}));     
    jo.put("key", "Africa");
    ja.put(jo);

    jo = new JSONObject();
    jo.put("values", new JSONArray(new Long[][]{{1025409600000L,23L},{1028088000000L,19L},{1030766400000L,21L},{1033358400000L,22L}}));     
    jo.put("key", "South America");
    ja.put(jo);         

    System.out.println(ja);

  }
}

输出:

[
{
    "values": [
        [
            1025409600000,
            23
        ],
        [
            1028088000000,
            19
        ],
        [
            1030766400000,
            21
        ],
        [
            1033358400000,
            22
        ]
    ],
    "key": "North America"
},
{
    "values": [
        [
            1025409600000,
            23
        ],
        [
            1028088000000,
            19
        ],
        [
            1030766400000,
            21
        ],
        [
            1033358400000,
            22
        ]
    ],
    "key": "Africa"
},
{
    "values": [
        [
            1025409600000,
            23
        ],
        [
            1028088000000,
            19
        ],
        [
            1030766400000,
            21
        ],
        [
            1033358400000,
            22
        ]
    ],
    "key": "South America"
  }
]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多