Как я могу преобразовать JSONObject
в PersonBean
, как показано ниже? У меня есть посредник Person
с полем name
и List<String
для других атрибутов. List
имеет неопределенный размер, но меньше десяти элементов.
Я думаю создать PersonBean
с дополнительными полями String
, а затем вручную скопировать значения из List
в установщики бинов.
Но, конечно, я выхожу из связанных ошибок при создании PersonBean
, потому что List
может быть пустым:
package groupBaseX.io;
import java.util.logging.Logger;
public class PersonBeanBuilder {
private static final Logger log = Logger.getLogger(PersonBeanBuilder.class.getName());
private Person person = null;
private PersonBean personBean = new PersonBean();
private PersonBeanBuilder() {
}
public PersonBeanBuilder(Person person) {
this.person = person;
log.fine(person.toString());
log.fine(person.getName());
personBean.setName(person.getName());
String a = person.getAttributes().get(0);
String b = person.getAttributes().get(1);
String c = person.getAttributes().get(2);
String d = person.getAttributes().get(3);
String e = person.getAttributes().get(4);
personBean.setA(a);
personBean.setB(b);
personBean.setC(c);
personBean.setD(d);
personBean.setE(e);
}
public PersonBean getPersonBean() {
return personBean;
}
}
Конечно, я могу просто использовать try/catch
но нет ли более элегантного решения? Вышеприведенный код очень важен.
, потому что базовый JSON
в JSONArray
имеет неопределенный размер. В практических целях меня интересуют только имя и первые несколько атрибутов для каждого объекта ниже:
[
{
"0":"z10",
"1":"y9",
"2":"x7",
"3":"atrib6",
"name":"alice"
},
{
"0":"home5",
"1":"cell4",
"name":"sue"
},
{
"0":"phone3",
"1":"phone2",
"2":"phone1",
"name":"joe"
},
{
"name":"people"
}
]
Некоторые JSONObject
, конечно, будут иметь нулевые атрибуты, но, безусловно, меньше десяти. Просто глядя на создать a Java Bean сверху JSON
, который BaseX
.