JSON питаются к Объекту Java

Я хотел бы знать, существует ли веб-страница/программное обеспечение, которая может "перевести" объект канала Json в объект Java с атрибутами.

Например:

{
            'firstName': 'John',
            'lastName': 'Smith',
            'address': {
                'streetAddress': '21 2nd Street',
                'city': 'New York'
            }
        }

Стал бы:

class Person {
    private String firstName;
    private String lastName;
    private Address address;

    public String getFirstName() { return firstName; }
    public String getLastName() { return lastName; }
    public Address getAddress() { return address; }

    public void setFirstName(String firstName) { this.firstName = firstName; }
    public void setLastName(String lastName) { this.lastName = lastName; }
    public void setAddress(Address address) { this.address = address; }

    public String toString() {
        return String.format("firstName: %s, lastName: %s, address: [%s]", firstName, lastName, address);
    }
}

class Address {
    private String streetAddress;
    private String city;

    public String getStreetAddress() { return streetAddress; }
    public String getCity() { return city; }

    public void setStreetAddress(String streetAddress) { this.streetAddress = streetAddress; }
    public void setCity(String city) { this.city = city; }

    public String toString() {
        return String.format("streetAddress: %s, city: %s", streetAddress, city);
    }
}

Я не прошу, чтобы, потому что я ленив, но JSON, который я хотел бы проанализировать, имел довольно большой атрибут.

7
задан Roch 13 March 2010 в 10:39
поделиться

2 ответа

Возможно, вам стоит взглянуть на Gson, библиотеку Google JSON Java. В нем есть методы для сериализации объектов из Java в JSON и десериализации из JSON в объект Java.

Я никогда не использовал его для десериализации, поэтому я не могу подробно рассказать об этом, например, как он будет обрабатывать вложенный объект (адрес), но я думаю, что он может справиться с этим.

Документ API: http://google-gson.googlecode.com/svn/tags/1.3/docs/javadocs/index.html Руководство пользователя: https://sites.google.com/site/gson/gson-user-guide

Удачи!

1
ответ дан 7 December 2019 в 16:41
поделиться

Я успешно использовал json-lib для сериализации и десериализации json. Ваш пример будет выглядеть так:

String json = "{'firstName': 'John', 'lastName': 'Smith', 'address': {'streetAddress': '21 2nd Street', 'city': 'New York'}}";
JSONObject jsonObject = JSONObject.fromObject(json);
Person bean = (Person) JSONObject.toBean(jsonObject, Person.class);
System.out.println(bean);

И печатает

firstName: John, lastName: Smith, address: [streetAddress: 21 2nd Street, city: New York]

Если вам нужно настроить его, есть множество хуков расширения. В моем приложении я добавил поддержку сериализации Locale в строку «sv_SE», а не в объект. И для десериализации той же строки в объект Locale.

2
ответ дан 7 December 2019 в 16:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: