Преобразование JSON с целыми числами в объекты Java POJO

#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 имени like DataType64693 и добавления @JsonProperty("64693") аннотации. Если у вас есть конкретная библиотека, которую вы используете, я был бы рад предоставить реализацию.

4. Один плакат уже предлагался gson . Другие варианты включают FlexJSON и Jackson . Действительно, с любой из этих библиотек преобразование в простой объект Map является отправной точкой.

Ответ №1:

у _ug было правильное предложение:

… объект рассмотрите возможность присвоения имени 64693 типу данных 64693 и добавления аннотации @JsonProperty(«64693»)

Это сработало нормально. И, кстати, я использую JSON-процессор Jackson 2.0.