Я пытаюсь отправить вызов API с помощью json-simple 1.1.1, и я сохраняю поля и значения как HashMap. Я должен отправить эти параметры:Как поместить массив в Hashmap для кодирования объекта JSON
{ api_key : string,
product_id : string,
name : string,
tax_rates : array }
Вот HashMap пример:
HashMap<String,Object> arg = new HashMap<String, Object>();
arg.put("product_id","42");
arg.put("name", "EKOS");
arg.put("tax_rates", taxarray);
Я спас taxarray как HashMap, а также:
HashMap<String, Object> taxarray = new HashMap<String, Object>();
taxarray.put("name","EKOS");
taxarray.put("type", "type_value_fixed");
taxarray.put("value", "56");
Но когда я выполнить API называют его повторяет ошибку: Параметр «tax_rates» недействителен. Необходимым типом параметра является массив.
Я пытался сохранить taxarray HashMap как JSONArray, а также. Не могли бы вы мне помочь?
Дополнительный вопрос: как я могу сэкономить 2 или более налогов в пределах одного «tax_rates»? Вот пример:
HashMap<String,Object> arg = new HashMap<String, Object>();
arg.put("product_id","42");
arg.put("name", "EKOS");
arg.put("tax_rates", array [
taxarray1[],
taxarray2[]
]);
Как предложение вы должны использовать объект Json для хранения объекта, например: { "product_id": 42, "Название": "ЭКОС", " tax_rates": { "а": "б", "с": "D", "е": "F" } } – user1211
Хм ... Я бы не рекомендовал этот подход. 'HashMap' не эквивалентен объекту JavaScript; его целью является захват объектов, реализующих один и тот же интерфейс. Хотя вы можете заставить это работать, это не способ Java. Я бы рекомендовал попробовать что-то вроде подхода на https://www.mkyong.com/java/jackson-2-convert-java-object-to-from-json/, чтобы использовать существующие инструменты для сопоставления ваших классов JSON с Java, которые захватывают вашей ожидаемой структуры на более Java-пути. – sadakatsu