Как создать объект JSON с несколькими массивом внутри него с помощью пакета org.json.JSONObject в Java?

Я хочу создать объект json как, {"jsonName":[{"id":"1","name":"abc"},{"id":2,"name":"pqr"}]} "jsonName"извлекает данные из базы данных, и я хочу создать объект из этих данных. и я хочу обновить некоторое значение из этого объекта json с помощью "id" после того, как мы его создали.

Предположим, я запускаю запрос из Java..

String selectStr = "select * from emp";
ResultSet rs = ps.executeQuery ();
while(rs.next())
{
.....
}

Я собираю данные, подобные этой, и хочу создать объект json, в котором хранятся все строки данных. Может кто-нибудь, пожалуйста, помогите мне.. Я новичок в JSON возражать.

3 ответа

Решение

Использование библиотеки org.json:

JSONArray elements  = new JSONArray();
JSONObject rootJson = new JSONObject();
String selectStr    = "select * from emp";
try
{
    JSONArray elements  = null; // to prevent query returning empty resultset
    JSONArray el        = new JSONArray();

    ResultSet rs = ps.executeQuery();
    while(rs.next())
    {
        JSONObject el = new JSONObject();
        el.put("id", rs.getInt(1));
        el.put("name", rs.getString(2));
        elements.put(element);
    }

    rootJson.put("jsonName", elements);

}catch(Exception e)
{
    e.printStackTrace();
}

При использовании библиотеки, такой как gson (см. https://github.com/google/gson), это становится тривиальной задачей. Вы можете просто определить структуру в форме классов, таких как эта:

public class JsonObj {
    public List<JsonItem> jsonName;
}

public class JsonItem {
    public int id;
    public String name;
}

Затем вы можете использовать gson для сериализации вашего объекта в json (исчерпывающий пример, но вы понимаете суть):

Gson gson = new Gson();
JsonObj obj = new JsonObj();
obj.jsonName = new ArrayList<String>();

String selectStr = "select * from emp";
ResultSet rs = ps.executeQuery();
while(rs.next())
{
    JsonItem item = new JsonItem();
    item.id = rs.getInt(1); //or whatever column index goes here
    item.name = rs.getString(2); //or whatever column index goes here
    obj.jsonName.Add(item);
}
String json = gson.toJson(obj);

json Объект теперь будет содержать сериализованный JSON в формате String.

Вы можете попробовать быстрый JSON. Который может быть использован для преобразования объектов Java в их представление JSON. Его также можно использовать для преобразования строки JSON в эквивалентный объект Java. quick-json может работать с любыми произвольными объектами Java.

Другие вопросы по тегам