Использование 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":[]}
Другие вопросы по тегам