JSON для объектов в Java? - PullRequest
       4

JSON для объектов в Java?

2 голосов
/ 20 августа 2010

Кто-нибудь знает, есть ли возможность генерировать объекты для данных JSON? Я знаю, что есть универсальные библиотеки объектов JSON, но я ищу более конкретные - аналогично тому, как jaxb может преобразовывать определения SOAP или XSD в объектную модель. Я знаю, что должен быть какой-то файл определения JSON (который я не знаю, существует ли эта концепция даже в JSON), но я чувствую, что это было бы намного более полезно Подумайте:

Общий случай:

genericJsonObect.get("name");

Конкретный случай:

specificJsonObject.getName();

Ответы [ 5 ]

3 голосов
/ 20 августа 2010

Джексон и XStream имеют возможность сопоставлять JSON с POJO.

3 голосов
/ 20 августа 2010

Хотите, чтобы исходный файл .java создавался для вас? Или сопоставить выход Java-бинов объектам JSON?

Если в первом случае нет такой библиотеки (о которой я знаю), если позже, Google GSON - это именно то, что вам нужно.

Из образцов:

class BagOfPrimitives {
    public int value1 = 1;
    private String value2 = "abc";
    private transient int value3 = 3;
    BagOfPrimitives() {
    // no-args constructor
    }
}

(сериализации)

BagOfPrimitives obj = new BagOfPrimitives();
Gson gson = new Gson();
String json = gson.toJson(obj); 
System.out.println( json );

Печать

{"value1":1,"value2":"abc"}

(десериализация)

BagOfPrimitives obj2 = gson.fromJson(json, BagOfPrimitives.class);   
System.out.println( obj2.value1 ) ; // value1 is 1
1 голос
/ 20 августа 2010

Я думаю, что Джексон картограф может сделать то, что вам нужно.Он может сериализовать / десериализовать реальный объект Java в дерево Json.

Но другие API также должны работать:

  • Sojo
  • FlexJSON
  • Гсон
0 голосов
/ 28 декабря 2010

Я нашел этот сайт очень полезным.

http://jsongen.byingtondesign.com/ и использовал его в наших проектах.

0 голосов
/ 02 сентября 2010

Я не знаком с таким проектом генерации кода, хотя я уверен, что многие проекты библиотеки JSON Java были бы заинтересованы в такой вещи. Основная проблема заключается в том, что для JSON существует хороший язык Schema, который позволял бы генерировать код; Схема JSON работает только для проверки.

Однако: одна из возможностей, которую вы могли бы рассмотреть, это просто использовать JAXB для генерации bean-компонентов, а затем использовать Jackson для использования этих bean-компонентов. Он поддерживает аннотации JAXB, поэтому вы сможете работать с JSON и сгенерированными компонентами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...