Как использовать метод 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
надеюсь, это поможет вам!