Как использовать метод JSON Accumulate со списком?

Я пытаюсь ниже кода....

public  String listToJsonString(String keyName, List<StyleAttribute> attrs) {
        JSONObject json = new JSONObject();
        json.accumulate(keyName, attrs);
        return json.toString();
    }

но когда я проверяю в формате JSON переменная содержит пустые значения, как показано ниже

{"myKey":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]}

и когда я проверяю attrs переменные он содержит 22 элемента данных.Что я здесь делаю не так? Я просто конвертирую свой список в объект Json и сохраняю в базу данных. Я использую

import net.sf.json.JSONArray;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;

2 ответов


вы можете использовать ниже код

public String listToJsonString(List<StyleAttribute> attrs) {
        JSONObject jObject = new JSONObject();
        try {
            JSONArray jArray = new JSONArray();
            for (MyClass myObject: attrs) {
                JSONObject styleJSON = new JSONObject();
                styleJSON.put("name",myObject.getName());
                styleJSON.put("rollNumber", myObject.getRollNumber());

                jArray.add(styleJSON);
            }
            jObject.put("keyName", jArray);
        } catch (Exception jse) {
        }

        return jObject.toString();
    }

это решит вашу проблему.


Не уверен в этом, но, возможно, объекты в вашем списке сериализуемы.

кроме того, какую библиотеку вы используете для управления JSON?

EDIT:

Так json-lib это!

Я нашел это в FAQ JSON-lib:

JSON-lib создает пустые JSONObjects из моего класса bean, помогите мне!

Json-lib использует соглашение JavaBeans для проверки ваших бобов и создания Объекты jsonobject. Если свойства вашей фасоли не придерживаются соглашение, результирующий JSONObject будет пустым или полупустым. Для каждого свойства необходимо указать пару методов чтения и записи.

вот страница Википедии, говорящая о конвенциях JavaBeans:

http://en.wikipedia.org/wiki/JavaBeans#JavaBean_conventions

надеюсь, это поможет вам!