我有三个String[][]
数组,它们的长度可以不同。第二个长度始终是固定的,长度为6
,但是第一个长度可以在0
和6
之间不同。
我想创建一个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”,“到达“:” 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”,“方向”:“Åkeshov”,“出发”:“ 10:09”,“到达”:“ 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”}]}, {“ String array 3”:[{“ Duration”:“ 31”,“ Walking time”:“ 12”,“ Direction”:“Hässelbystrand”,“ Departure”:“ 09:45”,“ Arrival”:“ 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”,“终点站”:“索伦蒂纳”}]}]
因此,我真正想要的是根据字符串数组的长度动态创建Json字符串的方法。
提前谢谢!
答案 0 :(得分:2)
请参考以下代码。
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;
}