Как сделать объект JSON из базы данных в Java?

1

Я хочу сделать объект JSON из базы данных, но есть одна сложная структура. Я не понимаю, как сделать сложную структуру, такую как "значения" в следующей строке Json.Помощь кому угодно, спасибо заранее. Это строка Json, которую я хочу сделать:

[{"type":"person1","id":null,"values":[[[32.3619,50.9291],[32.3604,50.9644],[32.3446,50.9395]]]}]

Код Я еще пробовал.

                Session sess1 = sf.openSession();
                Query q = sess1.createQuery("from person");
                List l = q.list();
                Iterator itr = l.iterator();
                JSONArray jArray = new JSONArray();
                JSONObject jObj = new JSONObject();
                String id = null, lat, lng;
                while (itr.hasNext()) {
                    Person pobj = (Person) itr.next();
                    id = pobj.getId().toString();
                    lat = pobj.getLatitude();
                    lng = pobj.getLongitude();
                }
                jObj.put("type", "Person1");
                jObj.put("id", id);

                JSONArray jrray = new JSONArray();
                jArray.put(jObj);
                JSONObject jObjDevice = new JSONObject();
                jObjDevice.put("", jArray);
                System.out.println("json object created" + jObjDevice.toString());
Теги:

4 ответа

1
Лучший ответ

Использование jackson...

import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

public class MapToJsonExample {
    private static final String pathToJsonResult = "example.json";

    public static void main(String[] args) {
        ObjectMapper objectMapper = new ObjectMapper();

        Map<String, Object> mapObject = new HashMap<String, Object>();

        mapObject.put("type", "person1");
        mapObject.put("id", null);

        List<Object> myList = new ArrayList<>();
        List<Double> point1 = Arrays.asList( 32.3619,50.9291 );
        List<Double> point2 = Arrays.asList( 32.3446,50.9395 );
        List<List<Double>> innerList = new ArrayList<>();
        List<List<List<Double>>> outerList = new ArrayList<>();
        innerList.add( point1 );
        innerList.add( point2 );
        outerList.add( innerList );
        mapObject.put( "values", outerList );

        try {
            objectMapper.writeValue(new File(pathToJsonResult), mapObject);
        } catch (JsonGenerationException e) {
            e.printStackTrace();
        } catch (JsonMappingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Здесь, используя Windows и Java7,
Скомпилируйте его..

javac -cp .;jackson-all-1.9.11.jar MapToJsonExample.java

Запустить его...

java -cp .;jackson-all-1.9.11.jar MapToJsonExample

Вуаля!

type example.json
{"values":[[[32.3619,50.9291],[32.3446,50.9395]]],"id":null,"type":"person1"}
  • 0
    тогда вы можете дать мне несколько полезных ссылок или справку, в которой структура, такая как «значения»: [[[32.3619,50.9291], [32.3604,50.9644], [32.3446,50.9395]]]}] является сборкой. Я новичок в JSON, и я должен сделать это очень быстро :(
  • 0
    Я, вероятно, должен был бы поэкспериментировать некоторые, что я думаю, вы также можете попробовать сделать сами Другой подход иллюстрируется здесь examples.javacodegeeks.com/core-java/json/jackson/…
Показать ещё 1 комментарий
0

Я полагаю, вы используете реляционную базу данных, такую как MySQL. Чтобы получить свою запись в форме объекта, вы можете использовать Hibernate ORM. Вы можете найти множество обучающих программ в Интернете.

0

если вы используете java, то сделайте один модальный класс таким же, как поле таблицы базы данных и набор результатов db, преобразованный в этот модальный класс.... модальный класс - это объект java.....

Основываясь на том Java-объекте, используйте gson [com.google.code.gson] lib и конвертируйте его...

Вы просто гуглили много примеров там.

0

Я бы посоветовал вам избежать всего этого шаблона кода и использовать JPA и фреймворки, такие как Jackson или аналогичные. Разработчики бизнес-приложений не должны тратить время на эти объекты инфраструктуры :)))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню