【发布时间】:2012-02-08 18:44:33
【问题描述】:
我不确定这是否可能,但我认为可以使用 JSONArray.put 方法来完成。
这是我的问题:
我有两个列表:
ArrayList<Students> nativeStudents;
ArrayList<transferStudents> transferStudents = nativeStudents.getTransferStudentsList();
我使用 transferStudents 列表生成的 JSON 就在此处:http://jsfiddle.net/QLh77/2/,使用以下代码:
public static JSONObject getMyJSONObject( List<?> list )
{
JSONObject json = new JSONObject();
JsonConfig config = new JsonConfig();
config.addIgnoreFieldAnnotation( MyAppJsonIgnore.class );
if( list.size() > 0 )
{
JSONArray array = JSONArray.fromObject( list, config );
json.put( "students", array );
}
else
{
//Empty Array
JSONArray array = new JSONArray();
json.put( "students",
array );
}
return json;
}
现在我想要得到的是具有以下结构的 JSON 数据:http://jsfiddle.net/bsa3k/1/(注意两个数组元素中的 tempRollNumber 字段)。
我正在考虑这样做:(这里的if条件用于业务逻辑)
if(transferStudents.getNewStudentDetails().getRollNumber() == nativeStudents.getNativeStudentDetails.getStudentId()){
json.put("tempRollNumber", transferStudents.getNewStudentDetails().getRollNumber());
}
但这会在数组元素之外添加 tempRollNumber,我希望这个 JSON 元素成为学生数组每个条目的一部分。
PS:我无法编辑 transferStudents 类以添加 tempRollNumber 字段。
【问题讨论】:
-
最好创建 Java 对象来表示您的对象,然后使用您的应用程序服务器(您必须有一个,因为您已标记此 java-ee)为您生成 JSON。
-
嗨,保罗,感谢您的建议。但是这个问题很牵强。我必须在列表被填充之后并且在它被传递到前端之前添加这个字段。
-
扩展
List中包含的对象,添加您需要的字段,然后编组您的对象而不是您提供的对象。
标签: java javascript jquery json jakarta-ee