Использование JSONArray со списком bean-компонентов, содержащих списки
Я пытаюсь преобразовать список Java-бинов в строку JSON с помощью конструктора объектов JSONArorg json.org.
Вот боб:
package jackiesdogs.bean;
import java.util.*;
public class UploadLog {
private String logDescription;
private List<String> headings;
private List<List<String>> log;
public UploadLog(String logDescription, List<String> headings, List<List<String>> log) {
this.logDescription = logDescription;
this.headings = headings;
this.log = log;
}
public String getLogDescription() {
return logDescription;
}
public void setLogDescription(String logDescription) {
this.logDescription = logDescription;
}
public List<String> getHeadings() {
return headings;
}
public void setHeadings(List<String> headings) {
this.headings = headings;
}
public List<List<String>> getLog() {
return log;
}
public void setLog(List<List<String>> log) {
this.log = log;
}
}
И вот код, который я использую, чтобы преобразовать его в JSON:
JSONArray outputJSON = new JSONArray(output,false);
Я ожидаю получить следующее:
[{"headings":[{"Vendor Order Id"}],"logDescription":"You are attempting to upload a duplicate order.","log":[{[{"132709B"}]}]}]
Но вместо этого я получаю:
[{"headings":[{"bytes":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}],"empty":false}],"logDescription":"You are attempting to upload a duplicate order.","log":[{}]}]
Есть идеи?
1 ответ
Решение
Я знаком только с GSON, который достаточно надежен. Следующее работает с GSON.
import com.google.gson.Gson;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class PlayWithGson2 {
public static void main(String[] args) throws IOException {
PlayWithGson pwg = new PlayWithGson();
List<String> headings = new ArrayList<String>();
headings.add("Vendor Order Id");
List<List<String>> log = new ArrayList<List<String>>();
UploadLog ul = new UploadLog("headings", headings, log);
Gson gson = new Gson();
String toJson = gson.toJson(ul);
System.out.println(toJson);
}
}
Печать:
{"logDescription":"headings","headings":["Vendor Order Id"],"log":[]}