如何使用Java创建逗号分隔的数组数组

时间:2019-04-08 08:49:52

标签: javascript java spring-mvc

我正在尝试使用google maps API使用Java Spring MVC Web Application在网页中列出多个位置。这些位置存储在我的数据库中。 现在,我尝试以以下格式返回位置列表:

['ABC', -33.890542, 151.274856],
      ['Coogee Beach', -33.923036, 151.259052],
      ['Cronulla Beach', -34.028249, 151.157507],
      ['Manly Beach', -33.80010128657071, 151.28747820854187],
      ['Maroubra Beach', -33.950198, 151.259302]

我需要这种格式,因为在脚本中按以下方式调用位置:

var locations = [
      ['ABC', -33.890542, 151.274856],
      ['Coogee Beach', -33.923036, 151.259052],
      ['Cronulla Beach', -34.028249, 151.157507],
      ['Manly Beach', -33.80010128657071, 151.28747820854187],
      ['Maroubra Beach', -33.950198, 151.259302]
    ];

我想做的是使用Java创建此数组,然后将其传递给UI。我不确定如何使用Java创建这样的数组结构。

2 个答案:

答案 0 :(得分:3)

该数组包含不同数据类型的项。这会在诸如Java之类的静态类型语言中造成问题。必须定义数组Object[],这是有问题的,因为编译器将无法帮助您正确地填充数组。

您应该在服务器和客户端之间设计API,以使用Json对象数组。像

[
  {"Name": "Coogee Beach", "longitude":-33.923036, "latitude":151.259052},
  {"Name": "Cronulla Beach", "longitude":-34.028249, "latitude":151.157507},
  ...
]

这最好用Java来表示,方法是创建一个具有与JSON对象匹配的属性的类:

public class Place {
  public String name;
  public double longitude;
  public double latitude;
}

您应该创建一个List的数组(或PLace),并且可以使用许多Jason库之一来将Java对象映射到Json对象。

答案 1 :(得分:1)

在数组中返回纬度/经度的设计看起来不太好,但这是应该起作用的解决方案。

Object[][] result = new Object[list.size()][3];
for (int i = 0; i < list.size; i++) {
    result[i][0] = list[i].locName;
    result[i][1] = list[i].latitude;
    result[i][2] = list[i].longitude;
}
return result;