0

我必须将 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。

4

0 回答 0