我不确定是否可能,但我认为可以使用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字段。
答案 0 :(得分:1)
由于没有人能提出更好的建议,我会将上述评论转化为答案。
处理此问题的最佳方法是创建数据的对象模型,而不是自己创建JSON输出。您的应用服务器或容器可以为您处理。
虽然您无法更改List
中收到的对象,但您可以扩展对象的类以添加自己的字段。当你编组时,这些字段会显示在JSON中。