Преобразование списка массивов в строку объекта json

У меня есть метод класса модели, который возвращает список объектов, который содержит все зарегистрированные данные пользователя. Я хочу получить список, восстановленный методом all(), и преобразовать данные в объект JSON и передать его в виде, подобном строке. Как я могу сделать это преобразование этого списка массивов в объект JSON?

Я не смог сделать это ниже:

ObjectMapper mapper = new ObjectMapper();
JSONObject json = new JSONObject();
JsonNodeFactory jsonnode = JsonNodeFactory.instance;
ObjectNode result = new ObjectNode(jsonnode);
for (int i = 0; i < list.size(); i++) {
    json.put(list.get(i).fname, list.get(i));
    System.out.println(json.get("fname"));
}

@Entity
class Mydata extends Model {

    @Id
    public Long Id;
    public String fname;
    public String lname;
    public String city;
    public String state;
    /****************** READ/select OPERATION *****************/
    public static Finder < Long, Mydata > finder = new Finder(Long.class, Mydata.class);

    public static List < Mydata > all() {
        return finder.all();
    }
    public static void createuser(Mydata user) {
        user.save();
    }
}

Ответ 1

Чтобы преобразовать ArrayList в Json, просто скачайте утилиту Open Source json из: http://json.org/java/ или файл Jar из здесь

И просто сделайте:

JSONArray jsonAraay = new JSONArray(your_array_list);

Что он

Примечание. В вашем классе POJO/MODEL у вас должен быть setter/getter для преобразования arraylist в json

Ответ 2

Не беспокойтесь о org.json, используйте Jackson полностью:

// list is a List<MyData>
final ObjectMapper mapper = new ObjectMapper();
final Map<String, MyData> map = new HashMap<>();
for (final MyData data: list)
    map.put(data.fname, data);
final JsonNode json = mapper.valueToTree(map);

Ответ 3

Вы можете использовать всевозможные сторонние библиотеки, например, другие, которые предлагали здесь, или просто использовать собственные упрощенные методы Play для этого (найдено в play.libs.Json), который работает с объектами Jackson, но он интегрирован в структуру и требует много меньше кода для использования, например:

JsonNode myJsonNode = Json.toJson(MyListObject);, который преобразует объект List в объект JsonNode, затем используйте что-то вроде String jsonResult = Json.stringify(myJsonNode); для преобразования его в строковое представление.

Если вы используете JSON в шаблоне, не забудьте обернуть его чем-то вроде @Html(myJsonString), чтобы он ничего не избежал. В противном случае, если вы просто выведете чистый JSON в браузер, простейший return ok(jsonResult); будет работать, так как Play автоматически установит тип содержимого.

Ссылка ссылки: http://www.playframework.com/documentation/api/2.0/java/play/libs/Json.html