【问题标题】:Change json array format for highcharts更改 highcharts 的 json 数组格式
【发布时间】:2016-01-29 10:56:29
【问题描述】:

我在 Java 的 @RestController 类中使用 JSONArray 和 JSONObject 来为 highcharts 生成一个 json 数组。

输出格式如下:[{"17":183},{"16":185},{"15":178},{"14":241},{"13":326},{"12":193},{"11":175},{"10":132},{"9":42},{"4":12},{"3":306},{"2":362},{"1":382},{"0":305}]

我需要把它改成这种格式:[[1,12],[2,5],[3,18],[4,13],[5,7],[6,4],[7,9],[8,10],[9,15],[10,22],[11,23],[12,13],[13,14],[14,23]]

使用 JSONArray 和 JSONObject 是否可行?或者我还有什么其他解决方案?

【问题讨论】:

  • 可以使用String类的replace()方法吗?
  • 我不喜欢使用这种手动方式
  • 在发送响应之前使用替换 (((yourJsonArrey.toString().replace("{","[")).replace("}","]")).replace("\"","")).replace(":",",")

标签: javascript java json highcharts


【解决方案1】:

作为其他解决方案,您可以在 JS 中解析该数据:

var parsedData = [];
$.each(json_data, function (key, val) {
  parsedData.push([parseInt(key, 10), val]);
});

并且数据必须按x值升序排序,因此可能也需要手动对数据进行排序:

parsedData.sort(function (a, b) {
  return a[0] - b[0];
});

【讨论】:

    【解决方案2】:

    您需要使用内部数组而不是对象。例如:

    JsonArray result = Json.createArrayBuilder()
                           .add(Json.createArrayBuilder().add(1).add(12))
                           .add(Json.createArrayBuilder().add(2).add(5))
                           .build();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多