Я новичок в Java и пишу API.
У меня есть две вещи: HashMap с именем db
, который должен быть возвращен как JSON, и ArrayList с именем defaultParameters
. В основном то, что делает приложение, следующее:
db
в основном содержит массив объектов пар ключ-значение, которые должны быть возвращены как JSON, когда пользователь делает запрос GET по этому адресу.
defaultParameters
- это в основном список пар ключ-значение по умолчанию. Если в этом объекте нет пары ключ-значение, тогда этот объект принимает эту пару ключ-значение по умолчанию.
Мне удалось отобразить его на консоли, но по какой-то причине обновленные значения не отображаются в JSON, когда я выполняю запрос на получение.
Вот соответствующие фрагменты кода:
private static ArrayList<Item> DB = new ArrayList<>();
private static HashMap<String, String> defaultValues = new HashMap<>();
private void updateAllItems(){
for(Item item : DB){
for(Map.Entry entry : defaultValues.entrySet()){
String currentField = (String) entry.getKey();
String currentValue = (String) entry.getValue();
item.addField(currentField, currentValue);
}
}
}
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response getAllItems() {
updateAllItems();
for(Item item : DB){
// Test code that I added
item.printItem();
}
return Response.ok(DB).build();
}
Фрагменты класса Item
public class Item {
private HashMap<String, String> item = new HashMap<>();
public void addField(String key, String value){
item.put(key, value);
}
public void printItem(){
for(Map.Entry entry : item.entrySet()){
String currentField = (String) entry.getKey();
String currentValue = (String) entry.getValue();
System.out.println(currentField + ": " + currentValue);
}
}
}
Выполнение запроса POST
и выполнение запроса GET
приводит к получению следующее:
На консоли (что-то: notsomething) новое:
seller: Mrs. Fields
price: 49.99
title: Cookies
category: 42
something: notsomething
Ответ JSON однако:
[{"category":"42","seller":"Mrs. Fields","price":"49.99","title":"Cookies"}]
JSON отсутствует новая пара ключ-значение, которая есть в консоли. Я пытаюсь, чтобы JSON отражал то, что делает консоль. У кого-нибудь есть идеи?