Объекты в выводе, которые вы хотите, не являются допустимыми JSON, если вы не ставите} в конце каждого объекта. Кроме того, похоже, что вы хотите добавить изображения в массив, в JSON массивы находятся между [и].
Простое решение: поместите каждый "внешний" -JSONObjects в JSONArray и затем вызовите toString () массивов:
public class JSONtest
{
@Test
public void test() throws JSONException
{
JSONArray array = new JSONArray();
JSONObject im = new JSONObject();
toJSON(im, "Ok", "image1.bmp");
array.put(im);
im = new JSONObject();
toJSON(im, "Ok", "image2.bmp");
array.put(im);
im = new JSONObject();
toJSON(im, "Ok", "image3.bmp");
array.put(im);
System.out.println(array.toString());
}
public void toJSON(JSONObject outer,String description, String imageName)
{
JSONObject inner = new JSONObject();
try
{
outer.put(imageName, inner);
inner.put("description", description);
inner.put("filename", imageName);
}
catch (JSONException ex) { ex.printStackTrace(); }
}
}
Вывод (в формате):
[
{
"image1.bmp":{
"description":"Ok",
"filename":"image1.bmp"
}
},
{
"image2.bmp":{
"description":"Ok",
"filename":"image2.bmp"
}
},
{
"image3.bmp":{
"description":"Ok",
"filename":"image3.bmp"
}
}
]
Существует также множество JSON-форматеров и валидаторов , плавающих по сети, что может пригодиться, когда ваши JSON-строки имеют длину более 10000 символов и содержат глубокое вложение.