我必须将 POJO 转换为 JSON 对象,但我遇到了问题。我的 POJO 有四个变量及其 getter 和 setter。
private String RouteCoord;
private String RouteName;
private String freqArray;
private Double AvgTime;
我已经声明了一个对象列表
List<KPIsStructure> listOfKPIsObjects = new ArrayList<>();
我运行一个 for 循环,在其中创建 POJO 类的实例并将它们添加到已声明的列表 (listOfKPIsObjects)
for (int i=0;i<routes.length;i++){
KPIsStructure innerObject = new KPIsStructure();
innerObject.setRouteCoord(routes[i][1]);
innerObject.setRouteName(routes[i][0]);
innerObject.setAvgTime(AvgTime[i]);
innerObject.setfreqArray(freqArray[i]);
listOfKPIsObjects.add(innerObject);
}
然后是另一个 for 循环来制作嵌套的 JSON 对象
for (int i=0;i<listOfKPIsObjects.size();i++){
JSONObject temp = new JSONObject(listOfKPIsObjects.get(i));
processedJson.put("journey_"+(i+1), temp);
}
我返回已处理的Json。问题是结果缺少 POJO 类的变量 (String freqArray) 之一。
{"journey_1":{"avgTime":12.283334,"routeCoord":"435,345-789,1011","routeName":"tty-keskustori"},"journey_2":{"avgTime":12.283334,"routeCoord": "123,456-789,1011","routeName":"hervanta-tty"},"journey_3":{"avgTime":12.283334,"routeCoord":"123,456-789,1011","routeName":"kaleva-keskustori "}}
我尝试将类的变量作为字符串传递,它可以工作,它还表明字符串freqArray不为空。
String toJson = "{\"RouteName:"+listOfKPIsObjects.get(i).getRouteName()+",RouteCoordinates:"+listOfKPIsObjects.get(i).getRouteCoord()+",AvgTime:"+listOfKPIsObjects.get(i).getAvgTime()+",VisitFrequency:"+listOfKPIsObjects.get(i).getfreqArray()+"}";
这样做会消除从 POJO 映射到 JSON 对象的想法,反之亦然,并且不方便。
任何想法我在这里可能做错了什么。我正在使用 org.json。