从Java中的List <object>创建JSON数组

时间:2015-06-10 08:19:56

标签: java arrays json

这是一个基本的Java问题,我认为我无法解决如何解决问题。

我从Google AnalyticsAPI获取数据并将数据库中的行作为字符串存储为JSONArray

[["New Zealand","Auckland","1640","8.795731707317072","516.4469512195122"],["New Zealand","Wellington","1314","8.428462709284627","580.3302891933029"]]

对于谷歌地图,我需要一个JSON数组:

function drawMap() {
      var data = google.visualization.arrayToDataTable([
        ['City', 'Popularity'],
        ['New York', 200],
        ['Boston', 300],
        ['Miami', 400],
        ['Chicago', 500],
        ['Los Angeles', 600],
        ['Houston', 700]
      ]);

来自https://developers.google.com/chart/interactive/docs/gallery/geomap

我需要更改我的数据,通过解析并迭代它来删除第一个(即&#34; New Zealand&#34;)和每个对象的最后一个变量 - 我还需要添加标题,即[& #39;城市&#39;,&#39;受欢迎程度&#39;]

使用GSonBuilder我可以创建JSON

[{"city":"Wellington","sessions":"1314","viewsPerSessions":"8.428462709284627","avgDuration":"8.428462709284627"},{"city":"Christchurch","sessions":"432","viewsPerSessions":"10.127314814814815","avgDuration":"10.127314814814815"}]

如何将其转换为JSON数组?

1 个答案:

答案 0 :(得分:1)

我使用Android的JSON解析。有了这个,你就可以得到你想要的东西。

试试这个:

JSONArray js_data = [["New Zealand","Auckland","1640","8.795731707317072","516.4469512195122"],["New Zealand","Wellington","1314","8.428462709284627","580.3302891933029"]];
int lenght = js_data.length();
JSONArray city;
for(int i=0;i<length;i++) {
    //get each city
    city = js_data.getJSONArray(i);
    String nameCity = city.getString(0);
    String pop = city.getString(4);
    //Create a object JSON or whatever you want with this data
    JSONArray js_array = new JSONArray();       
    js_array.put(city); js_array.put(pop);
    //And put on a list
    js_map.put(js_array);
}

这是一个基本的java编码。 希望它有所帮助。