В контроллере REST при загрузке Spring я пытаюсь перебрать значения в ответе RequestBody и поместить некоторые из них в HashMap в конечную точку POST.
JSON, который я отправляю, имеет следующую структуру:
{"name":"yogurt","vitaminA":6,"vitaminb12":5}
На данный момент конечная точка выглядит так:
@RequestMapping("/create")
public NutrientList createNUtrientList(@RequestBody NutrientList nutrientList) {
Map<String, Double> nutrientMap = new HashMap<String,Double>();
//get nutrient values, need help with this part
for()
//add values to map
NutrientList nl = new NutrientList(nutrientList.getName(), nutrientMap);
//will save to repository
return nl;
}
Класс NutrientList выглядит следующим образом:
public class NutrientList {
@Id
private ObjectId id;
@JsonProperty("name")
private String name;
@JsonProperty("nutrientMap")
Map <String,Double> nutrientMap = new HashMap<String,Double>();
public NutrientList() {}
public NutrientList(String name, Map<String, Double> nutrientMap) {
this.id = new ObjectId();
this.name = name;
this.nutrientMap = nutrientMap;
}
//setters and getters
}
Данные хранятся в базе данных по отдельным питательным веществам, это не карта.Я вижу, что класс NutrientList не имеет той же структуры, но есть ли способ обойти это, чтобы иметь возможность использовать карту без изменения способа ее хранения в базе данных?
Мне нужно использоватькарта, потому что есть много питательных веществ, и я не хочу иметь отдельные переменные для них.Огромное спасибо.Дайте мне знать, если что-то неясно.
РЕДАКТИРОВАТЬ: я мог бы поочередно преобразовать CSV, где я получил данные в базе данных, в формат JSON с картой, но я не нашел онлайн-инструмент, который дает мнеэта гибкость.