#java #json #pojo
#java #json #pojo
Вопрос:
У меня есть эти данные JSON, и мне было интересно, как я мог бы преобразовать эти данные в объект Java POJO:
"progression": {
"64693": [
{
"1": 1
}
],
"64717": [
{
"1": 4
}
]
},
Я думал, что этого не может быть:
public class Progression{
private List<64693> 64693;
private List<64717> 64717;
public List<64693> get64693(){
return this.64693;
}
public void set64693(List<64693> 64693){
this.64693 = 64693;
}
public List<64717> get64717(){
return this.64717;
}
public void set64717(List<64717> 64717){
this.64717 = 64717;
}
}
Я очень хорошо знаком с Java, поэтому я знаю, что могу использовать @JsonProperty вместо фактических чисел, но просто интересно, были ли какие-либо другие варианты.
Спасибо!
Комментарии:
1. Вы не можете называть поля, начинающиеся с числа в Java. Может быть, попробуйте поместить их в
Map<Integer,Integer>
?2. Взгляните на
gson
.3. Вы также можете сопоставить его с универсальным
JSONArray
объектом, большинство библиотек имеют реализацию. Подумайте о узле или элементе для XML-документа, но для json. Также, если вы хотите, чтобы это было вProgression
объекте, рассмотрите возможность присвоения64693
имени likeDataType64693
и добавления@JsonProperty("64693")
аннотации. Если у вас есть конкретная библиотека, которую вы используете, я был бы рад предоставить реализацию.4. Один плакат уже предлагался
gson
. Другие варианты включаютFlexJSON
иJackson
. Действительно, с любой из этих библиотек преобразование в простой объект Map является отправной точкой.
Ответ №1:
у _ug было правильное предложение:
… объект рассмотрите возможность присвоения имени 64693 типу данных 64693 и добавления аннотации @JsonProperty(«64693»)
Это сработало нормально. И, кстати, я использую JSON-процессор Jackson 2.0.