我有三个长度可以不同的String[][]数组。第二个长度始终是固定的,长度为6,但是第一长度在06之间可以不同。

我想创建一个Json字符串,其中包含所有这些String数组的数据。到目前为止,它已经过硬编码了,但是我意识到一旦长度不再固定,我就会陷入麻烦...

travelgl1.put("Duration", str1[0][0]);
travelgl1.put("Walking time", str1[0][1]);
travelgl1.put("Direction", str1[0][2]);
travelgl1.put("Departure", str1[0][3]);
travelgl1.put("Arrival", str1[0][4]);
travelgl1.put("End station", str1[0][5]);


所以基本上我想要一个动态循环,该循环循环遍历String数组并将所有数据添加到该数组中。

有没有简单的方法可以做到这一点?我希望将所有三个json对象(来自三个String数组)最后编译成一个大json字符串。

我希望最终结果如下所示:


  [{“ String array 1”:[{“ Duration”:“ 33”,“ Walking time”:“ 8”,“ Direction”:“Åkeshov”,“ Departure”:“ 09:39”,“ Arrival”:“ 10:43“,”终点站“:” Sollentuna“},{”持续时间“:” 37“,”步行时间“:” 8“,”方向“:” Alvik“,”出发“:” 09:43“ ,“到达”:“ 10:51”,“终点站”:“ Sollentuna”},{“持续时间”:“ 34”,“步行时间”:“ 8”,“方向”:“ Alvik”,“出发” :“ 09:53”,“到达”:“ 10:58”,“终点站”:“ Sollentuna”},{“持续时间”:“ 36”,“步行时间”:“ 8”,“方向”:“ Åkeshov”,“出发”:“ 09:59”,“到达”:“ 11:06”,“终点站”:“ Sollentuna”},{“持续时间”:“ 33”,“步行时间”:“ 8” ,“ Direction”:“Åkeshov”,“ Departure”:“ 10:09”,“ Arrival”:“ 11:13”}]},
  {“字符串数组2”:[{“持续时间”:“ 54”,“步行时间”:“ 13”,“方向”:“ Farsta链”,“出发地”:“ 09:43”,“到达”:“ 11:13“,”终点站“:” Sollentuna“},{”持续时间“:” 47“,”步行时间“:” 13“,”方向“:” Gullmarsplan“,”出发“:” 09:50“ ,“到达”:“ 11:13”,“终点站”:“ Sollentuna”},{“持续时间”:“ 45”,“步行时间”:“ 13”,“方向”:“ Gullmarsplan”,“出发” :“ 10:00”,“到达”:“ 11:21”,“终点站”:“ Sollentuna”},{“持续时间”:“ 42”,“步行时间”:“ 13”,“方向”:“ Gullmarsplan”,“出发”:“ 10:10”,“到达”:“ 11:28”,“终点站”:“ Sollentuna”},{“持续时间”:“ 45”,“步行时间”:“ 13” ,“方向”:“ Gullmarsplan”,“出发”:“ 09:30”,“到达”:“ 10:51”,“终点站”:“ Sollentuna”}]},
  {“字符串数组3”:[{“持续时间”:“ 31”,“步行时间”:“ 12”,“方向”:“Hässelby街区”,“出发”:“ 09:45”,“到达”:“ 10:51“,”终点站“:” Sollentuna“},{”持续时间“:” 31“,”步行时间“:” 12“,”方向“:” Alvik“,”出发“:” 09:52“ ,“到达”:“ 10:58”,“终点站”:“ Sollentuna”},{“持续时间”:“ 33”,“步行时间”:“ 12”,“方向”:“Åkeshov”,“出发” :“ 09:58”,“到达”:“ 11:06”,“终点站”:“ Sollentuna”},{“持续时间”:“ 30”,“步行时间”:“ 12”,“方向”:“ Åkeshov”,“出发”:“ 10:08”,“到达”:“ 11:13”,“终点站”:“ Sollentuna”},{“持续时间”:“ 31”,“步行时间”:“ 12” ,“方向”:“Hässelby航路”,“出发”:“ 10:15”,“到达”:“ 11:21”,“终点站”:“ Sollentuna”}]}]


因此,我真正想要的是根据字符串数组的长度动态创建Json字符串的方法。

提前致谢!

最佳答案

请参考以下代码。

public List<Map<String, String>> myfunction(String str1[][]) {
    List<Map<String, String>> travelgl1 = new ArrayList<Map<String, String>>();
    for (int i = 0; i < str1.length; i++) {
        Map<String, String> map = new HashMap<String, String>();
        for (int j = 0; j < 6; j++) {
            if (j == 0)
                map.put("Duration", str1[i][j]);
            else if (j == 1)
                map.put("Walking time", str1[i][j]);
            else if (j == 2)
                map.put("Direction", str1[i][j]);
            else if (j == 3)
                map.put("Departure", str1[i][j]);
            else if (j == 4)
                map.put("Arrival", str1[i][j]);
            else if (j == 5)
                map.put("End station", str1[i][j]);
        }
        travelgl1.add(map);
    }
    return travelgl1;
}

10-04 16:42