{"id":331410,"date":"2022-04-02T15:00:16","date_gmt":"2022-04-02T15:00:16","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=331410"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=331410","title":{"rendered":"<span>\u0418\u0437 Excel \u0432 JSON. \u0423\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0442\u0435\u043b\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0438\u0437 Excel \u043a\u043d\u0438\u0433\u0438 \u0434\u043b\u044f API \u0442\u0435\u0441\u0442\u043e\u0432 (Java)<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/335\/1cf\/72d\/3351cf72d7a360c749f2708d8316ffdf.png\" width=\"1356\" height=\"891\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/335\/1cf\/72d\/3351cf72d7a360c749f2708d8316ffdf.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c API \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u044b &#8212; \u0437\u0430\u043f\u0440\u043e\u0441\u044b Post \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u0442\u0435\u043b\u0435, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 JSON \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043c\u0430\u0441\u0441\u0438\u0432\u044b , \u043c\u0430\u0441\u0441\u0438\u0432\u044b JSON \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u041c\u043d\u043e\u0433\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 &#8212; \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0414\u0430\u043d\u043e: \u0414\u0430\u0442\u0430\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 &#8212; \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0442\u0435\u0441\u0442\u043e\u0432, \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 Excel. <\/p>\n<p>\u0427\u0442\u043e \u0431\u044b \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043b\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0442\u0442\u0435\u0440\u044b \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u0438 \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c JSON, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u0430\u043a \u0442\u0435\u043b\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0418 \u0432\u0434\u0440\u0443\u0433 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u043e\u0432. \u0422\u043e\u0433\u0434\u0430 \u0438 \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 Excel \u0432 JSON \u043e\u0431\u044a\u0435\u043a\u0442 \u0431\u0435\u0437 \u0432\u0441\u044f\u043a\u0438\u0445 \u0442\u0430\u043c \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u043f\u0440\u0430\u0432\u043e\u043a \u0432 \u043a\u043e\u0434\u0435. \u041d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0430\u0432\u0438\u043b \u043f\u0440\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. <\/p>\n<p>\u0418\u0442\u0430\u043a! \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b, \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e, Fillo. \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0431\u0443\u0434\u0435\u0442 \u043a\u043b\u044e\u0447\u043e\u043c, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043a\u043b\u044e\u0447\u0430 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435. \u0421\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b &#8212; \u043e\u0434\u0438\u043d \u043d\u0430\u0431\u043e\u0440 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0414\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a \u043d\u0430 \u0432\u0445\u043e\u0434\u0435:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>shop_name<\/p>\n<\/td>\n<td>\n<p>\u0441ity<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>shop#1<\/p>\n<\/td>\n<td>\n<p>Charkiv<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>shop#2<\/p>\n<\/td>\n<td>\n<p>Kyiv<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>shop#3<\/p>\n<\/td>\n<td>\n<p>Dnipro<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435:<\/p>\n<pre><code>[{\"shop_name\": \"shop#1\", \"\u0441ity\": \"Charkiv\"}, {\"shop_name\": \"shop#2\", \"\u0441ity\": \"Kyiv\"}, {\"shop_name\": \"shop#3\", \"\u0441ity\": \"Dnipro\"}]<\/code><\/pre>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0412\u0421\u0415\u0425 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 Excel \u043b\u0438\u0441\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u0430\u043f\u043e\u0432. \u0420\u0430\u043d\u044c\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0434\u043b\u044f \u043f\u043e\u0445\u043e\u0436\u0438\u0445 \u0437\u0430\u0434\u0430\u0447 \u0434\u043b\u044f \u0432\u0435\u0431\u0442\u0435\u0441\u0442\u043e\u0432. \u041c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u0432\u0435 \u0441\u0442\u0440\u043e\u043a\u0438: \u043f\u0443\u0442\u044c \u043a Excel \u0444\u0430\u0439\u043b\u0443 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043b\u0438\u0441\u0442\u0430. \u042d\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0437\u0430\u0445\u0430\u0440\u0434\u043a\u043e\u0434\u0438\u0442\u044c, \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0442\u0435\u043b\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0438\u0437 Excel \u0444\u0430\u0439\u043b\u0430. \u042f \u0441\u043e\u0437\u0434\u0430\u044e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0438 \u0442\u0430\u043c, \u0435\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u043c\u0435\u043d\u044f\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0442\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u0441\u0435\u0445 \u0442\u0435\u0441\u0442\u0430\u0445.<\/p>\n<details class=\"spoiler\">\n<summary>Hidden text<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>    public List fromExcelToListOfMaps (String docPath, String sheet)  {         PATH_TO_EXCEL_DOC = docPath;         Fillo fillo = new Fillo();         Connection connection;         List&lt;Map&lt;String, String>> listOfMaps = new ArrayList&lt;>();         try {            \/* getting all the data from excel file *\/             connection = fillo.getConnection(PATH_TO_EXCEL_DOC);             Recordset recordset = connection.executeQuery(\"Select * From \"                     +sheet+\" \");           \/* getting column names*\/             ArrayList&lt;String> keys = recordset.getFieldNames();             int size = keys.size();                \/* creating array of maps*\/             while (recordset.next()) {                 Map&lt;String, String> values = new LinkedMap&lt;>();                 for (int i = 0; i  &lt;size; i++) {                      String key = keys.get(i);                     String value = recordset.getField(key);                     values.put(key, value);                  }                 listOfMaps.add(values);              }             recordset.close();             connection.close();         } catch (FilloException e) {             e.printStackTrace();         }         return listOfMaps;      } <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<p><code>[{shop_name=shop#1, \u0441ity=Charkiv}, {shop_name=shop#2, \u0441ity=Kyiv}, {shop_name=shop#3, \u0441ity=Dnipro}]<\/code><\/p>\n<p>\u041f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u043c\u0430\u043f\u0443 \u0432 JSON \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GSON \u043c\u043e\u0436\u043d\u043e \u0437\u0430 \u043e\u0434\u043d\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u043d\u043e \u0442\u0443\u0442 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0443\u0441\u0442\u044b\u0435 \u043a\u043b\u044e\u0447\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0445 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u043f\u0438\u043b\u0438\u0442\u044c \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 \u043c\u0435\u0442\u043e\u0434\u0430 fromExcelToListOfMaps , \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u043a\u043b\u044e\u0447\u0438 \u0431\u0435\u0437 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 JSON \u0441\u0442\u0440\u043e\u043a. <\/p>\n<pre><code>    public List&lt;String> dataToListOfJson(List&lt;Map&lt;String, String>> listOfMaps){         Gson gson = new Gson();         List&lt;String> listOfJson = new ArrayList&lt;>();         for (int i=0; i&lt;listOfMaps.size(); i++) {             \/*             * getting each map collection             * *\/             Map&lt;String,String> row = listOfMaps.get(i);             \/*             * deleting empty values             *\/             row.entrySet().removeIf(y -> (y.getValue().equals(\"\")));             \/*             * Turn map without empty fields to json             *\/             String requestBody = gson.toJson(row);             listOfJson.add(requestBody);         }         return listOfJson;     }<\/code><\/pre>\n<p>\u041d\u0430 \u0432\u0445\u043e\u0434\u0435:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>shop_name<\/p>\n<\/td>\n<td>\n<p>\u0441ity<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>shop#1<\/p>\n<\/td>\n<td>\n<p>Charkiv<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<\/td>\n<td>\n<p>Kyiv<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>shop#3<\/p>\n<\/td>\n<td>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430:<\/p>\n<p>[{shop_name=shop#1, \u0441ity=Charkiv},<\/p>\n<p> {shop_name=, \u0441ity=Kyiv},<\/p>\n<p> {shop_name=shop#3, \u0441ity=}]<\/p>\n<p>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435:<\/p>\n<p>[{&#171;shop_name&#187;:&#187;shop#1&#8243;,&#187;\u0441ity&#187;:&#187;Charkiv&#187;},<\/p>\n<p> {&#171;\u0441ity&#187;:&#187;Kyiv&#187;}, <\/p>\n<p>{&#171;shop_name&#187;:&#187;shop#3&#8243;}]<\/p>\n<p>\u0412 \u0442\u0430\u043a\u043e\u043c \u0432\u0438\u0434\u0435 \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0434\u0430\u0442\u0430\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440, \u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0438\u043f\u0430 String. \u0410 \u043a\u0430\u043a \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0443, \u0447\u0442\u043e \u0432\u043e\u0442 \u044d\u0442\u043e \u0432\u043e\u0442 boolean, \u0430 \u0432\u043e\u0442 \u044d\u0442\u043e Integer \u0438 \u043a\u0430\u0432\u044b\u0447\u043a\u0438 \u0442\u0443\u0442 \u043d\u0435 \u043d\u0443\u0436\u043d\u044b, \u0430 \u0442\u0430\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u043c\u0430\u0441\u0441\u0438\u0432 JSON \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u0418 \u0432 \u043a\u043e\u0434\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f, \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043d\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e. \u0420\u0435\u0448\u0438\u043b \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430:<\/p>\n<ol>\n<li>\n<p>string &#8212; \u043d\u0435\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430<\/p>\n<\/li>\n<li>\n<p>boolean &#8212; bool<\/p>\n<\/li>\n<li>\n<p>float &#8212; flo<\/p>\n<\/li>\n<li>\n<p>int &#8212; int<\/p>\n<\/li>\n<\/ol>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u043a\u043b\u044e\u0447\u0430 \u0434\u0432\u0443\u043c\u044f \u0437\u0432\u0435\u0437\u0434\u043e\u0447\u043a\u0430\u043c\u0438 (**). \u0422\u0435\u043f\u0435\u0440\u044c, \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430 \u043f\u0443\u0441\u0442\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u0438, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0441\u043b\u043e\u0432\u043e \u0435\u0441\u0442\u044c \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0437 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435, \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u044e\u0447 (\u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0438 \u0437\u0432\u0435\u0437\u0434\u043e\u0447\u043a\u0438) \u0438 \u0435\u043c\u0443 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u043a \u043d\u0443\u0436\u043d\u043e\u043c\u0443 \u0442\u0438\u043f\u0443 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code>            public static final String FLOAT_VAL = \"flo\";             public static final String BOOLEAN_VAL  = \"bool\";                                                           \/*work with Float*\/                  else if (keyWord.equals(FLOAT_VAL)){                     value = value.replace(\",\", \".\");                     JsonElement a = gson.toJsonTree(Float.parseFloat(value));                     jsElemMap.add(key.substring(x+2), a);                 }                 \/*work with Boolean*\/                  else if (keyWord.equals(BOOLEAN_VAL)){                     JsonElement a = gson.toJsonTree(Boolean.parseBoolean(value));                     jsElemMap.add(key.substring(x+2), a);<\/code><\/pre>\n<p>\u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0438\u0437 \u043c\u0430\u043f\u044b \u0432\u044b\u043f\u0438\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043f\u0430\u0440\u044b \u0432 \u043a\u043b\u044e\u0447\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 ** . \u0422.\u0435. \u0435\u0441\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439,  \u0442\u043e \u044d\u0442\u0430 \u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0435\u0442.<\/p>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435<\/p>\n<p>\u041d\u0430 \u0432\u0445\u043e\u0434\u0435:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>shop_name<\/p>\n<\/td>\n<td>\n<p>\u0441ity<\/p>\n<\/td>\n<td>\n<p>Int**employee_qty<\/p>\n<\/td>\n<td>\n<p>Bool**Sunday_off<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>shop#1<\/p>\n<\/td>\n<td>\n<p>Charkiv<\/p>\n<\/td>\n<td>\n<p>3<\/p>\n<\/td>\n<td>\n<p>true<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>shop#2<\/p>\n<\/td>\n<td>\n<p>Kyiv<\/p>\n<\/td>\n<td>\n<p>3<\/p>\n<\/td>\n<td>\n<p>true<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>shop#3<\/p>\n<\/td>\n<td>\n<p>Dnipro<\/p>\n<\/td>\n<td>\n<p>2<\/p>\n<\/td>\n<td>\n<p>false<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435:<\/p>\n<p><code>[{\"shop_name\":\"shop#1\",\"\u0441ity\":\"Charkiv\",\"employee_qty\":3,\"Sunday_off\":true}, {\"shop_name\":\"shop#2\",\"\u0441ity\":\"Kyiv\",\"employee_qty\":3,\"Sunday_off\":true}, {\"shop_name\":\"shop#3\",\"\u0441ity\":\"Dnipro\",\"employee_qty\":2,\"Sunday_off\":false}]<\/code><\/p>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Map&lt;String, String> \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0442\u0438\u043f\u0430 JsonObject. <\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043b\u044e\u0447\u0438 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 JsonObject. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432 Excel \u044f\u0447\u0435\u0439\u043a\u0443 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0442\u0438\u043f\u0430 {&#171;salary&#187;: 25.0,&#187;bonus&#187;: 4.75}, \u043d\u043e \u0432\u0435\u0434\u044c \u0443 \u043c\u0435\u043d\u044f \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0431\u0435\u0440\u0435\u0442 JSON \u0438\u0437 \u043b\u0438\u0441\u0442\u0430 Excel. \u041d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043b\u0438\u0441\u0442 \u0438 \u0441\u0442\u0440\u043e\u043a\u0443 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438. \u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e:<\/p>\n<ol start=\"5\">\n<li>\n<p>JsonObject &#8212; \u0415\u0441\u043b\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435      \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0430 \u043d\u0443\u0436\u0435\u043d JsonObject, \u0442\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441      \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c Excel \u043b\u0438\u0441\u0442\u0430, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 (\u0434\u043e\u0431\u0430\u0432\u0438\u043b \u043c\u0435\u0442\u043e\u0434 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u0432\u0441\u0435 \u0438\u043c\u0435\u043d\u0430 \u043b\u0438\u0441\u0442\u043e\u0432 Excel \u0444\u0430\u0439\u043b\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432). \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u044f\u0447\u0435\u0439\u043a\u0435 (\u0442\u0438\u043f int) &#8212; \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u044d\u0442\u043e\u043c \u043b\u0438\u0441\u0442\u0435 (\u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u0441 \u043d\u0443\u043b\u044f).<\/p>\n<\/li>\n<\/ol>\n<pre><code>\/*work with JsonObjects *\/                     \/*If Excel file contains sheet which name equals keyWord *\/                      else if (excelSheetNames(PATH_TO_EXCEL_DOC).contains(keyWord)){                          \/*get this sheet as list of json*\/                          List aa = dataToListOfJson2(fromExcelToListOfMaps(PATH_TO_EXCEL_DOC,keyWord));                         \/*and add one of json as value of current key*\/                         jsElemMap.add(key.substring(x+2), gson.toJsonTree(aa.get(Integer.parseInt(value))));                      }<\/code><\/pre>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043d\u0430 \u0432\u0445\u043e\u0434\u0435:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/60e\/f2d\/e86\/60ef2de86a85ebf57d58b1d4131f993f.png\" width=\"1057\" height=\"428\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/60e\/f2d\/e86\/60ef2de86a85ebf57d58b1d4131f993f.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435:<\/p>\n<p><code>[{\"Id\":0,\"First_Name\":\"Wasja\",\"Last_Name\":\"Smith\",\"Age\":19,\"Gender\":\"m\",\"paycheck\":{\"salary\":20.0}}, {\"Id\":1,\"First_Name\":\"Tanja\",\"Last_Name\":\"Johnson\",\"Age\":25,\"Gender\":\"f\",\"paycheck\":{\"salary\":20.0}}, {\"Id\":250,\"First_Name\":\"Ighor\",\"Last_Name\":\"Williams\",\"Age\":42,\"Gender\":\"m\",\"paycheck\":{\"salary\":25.0,\"bonus\":4.75}}, {\"Id\":13,\"First_Name\":\"Masha\",\"Last_Name\":\"Brown\",\"Age\":19,\"Gender\":\"f\",\"paycheck\":{\"salary\":25.0,\"bonus\":4.75}}, {\"Id\":4,\"First_Name\":\"Olja\",\"Last_Name\":\"Davis\",\"Age\":18,\"Gender\":\"f\",\"paycheck\":{\"salary\":33.3,\"bonus\":5.8}}, {\"Id\":40,\"First_Name\":\"Oleg\",\"Last_Name\":\"Miller\",\"Age\":25,\"Gender\":\"m\",\"paycheck\":{\"bonus\":100.0}}, {\"Id\":6,\"First_Name\":\"Kolja\",\"Last_Name\":\"Wilson\",\"Age\":21,\"Gender\":\"m\",\"paycheck\":{\"salary\":33.3,\"bonus\":5.8}}, {\"Id\":7,\"First_Name\":\"Andrew\",\"Last_Name\":\"Moore\",\"Age\":20,\"Gender\":\"m\",\"paycheck\":{\"salary\":25.0,\"bonus\":4.75}}]<\/code><\/p>\n<p>\u041e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u043c\u0430\u0441\u0441\u0438\u0432\u044b. \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0441\u0442\u043e\u0438\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u0441 \u043d\u0443\u043b\u044f, \u043d\u043e \u044f \u043f\u043e\u043b\u0435\u043d\u0438\u043b\u0441\u044f \u0438 \u0440\u0435\u0448\u0438\u043b \u0438\u0437 JsonObject \u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0432 List&lt;Object> . \u041d\u0430\u043f\u0438\u0441\u0430\u043b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434. \u041d\u0430 \u0432\u0445\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0443\u0442\u044c \u043a Excel \u0444\u0430\u0439\u043b\u0443, \u0438\u043c\u044f \u043b\u0438\u0441\u0442\u0430 \u0438 \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 (\u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u0441 \u043d\u0443\u043b\u044f)<\/p>\n<pre><code>    public List arrayVal(String pathToExcel, String sheetName, int rowNumber){           List&lt;JsonObject> x = dataToListOfJson2(fromExcelToListOfMaps(pathToExcel, sheetName));         JsonObject dataForArray = x.get(rowNumber);         List&lt;Object> arr= new LinkedList&lt;>();         for(String key : dataForArray.keySet()){             arr.add(dataForArray.get(key));         }         return arr;     }<\/code><\/pre>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e: <\/p>\n<ol start=\"6\">\n<li>\n<p>List&lt;Object> &#8212; arr. \u0418\u043c\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441  \u0438\u043c\u0435\u043d\u0435\u043c Excel \u043b\u0438\u0441\u0442\u0430, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u044f\u0447\u0435\u0439\u043a\u0435 (\u0442\u0438\u043f int) &#8212; \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438. \u0418\u043c\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432 Excel \u043b\u0438\u0441\u0442\u0435 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u0438\u043c\u0435\u044e\u0442, \u043d\u043e \u043e\u043d\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c\u0441\u044f (Fillo \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442) \u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e. (\u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0430 String \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e).<\/p>\n<\/li>\n<\/ol>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a \u043d\u0430 \u0432\u0445\u043e\u0434\u0435:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/afc\/f61\/b69\/afcf61b6942ea6a372ea1a3ecc4dc9d3.png\" width=\"730\" height=\"408\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/afc\/f61\/b69\/afcf61b6942ea6a372ea1a3ecc4dc9d3.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435:<\/p>\n<p><code>[{\"shop_name\":\"shop#1\",\"\u0441ity\":\"Charkiv\",\"income_per_month\":[78500,22222,2222,159]}, {\"shop_name\":\"shop#2\",\"\u0441ity\":\"Kyiv\",\"income_per_month\":[56900,11111,987456,6423,98741]}, {\"shop_name\":\"shop#3\",\"\u0441ity\":\"Dnipro\",\"income_per_month\":[12694,33333,111111]}]<\/code><\/p>\n<p>\u0412\u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043b\u0430\u0441\u0441 \u0441 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438:<\/p>\n<details class=\"spoiler\">\n<summary>Hidden text<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>package api;  import com.codoid.products.exception.FilloException; import com.codoid.products.fillo.Connection; import com.codoid.products.fillo.Fillo; import com.codoid.products.fillo.Recordset; import com.google.gson.Gson; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import org.apache.commons.collections4.map.LinkedMap;  import java.util.*;  import static api.ApiConstants.ApiBodyConstants.*; import static jdk.nashorn.internal.objects.NativeString.toLowerCase;   public class ApiBase {      public static String PATH_TO_EXCEL_DOC = \"\";      public List fromExcelToListOfMaps (String docPath, String sheet)  {         PATH_TO_EXCEL_DOC = docPath;         Fillo fillo = new Fillo();         Connection connection;         List&lt;Map&lt;String, String>> listOfMaps = new ArrayList&lt;>();         try {            \/* getting all the data from excel file *\/             connection = fillo.getConnection(docPath);             Recordset recordset = connection.executeQuery(\"Select * From \"                     +sheet+\" \");           \/* getting column names*\/             ArrayList&lt;String> keys = recordset.getFieldNames();             int size = keys.size();                \/* creating array of maps*\/             while (recordset.next()) {                 Map&lt;String, String> values = new LinkedMap&lt;>();                 for (int i = 0; i  &lt;size; i++) {                      String key = keys.get(i);                     String value = recordset.getField(key);                     values.put(key, value);                  }                 listOfMaps.add(values);              }             recordset.close();             connection.close();         } catch (FilloException e) {             e.printStackTrace();         }         return listOfMaps;      }       public List&lt;String> dataToListOfJson(List&lt;Map&lt;String, String>> listOfMaps){         Gson gson = new Gson();         List&lt;String> listOfJson = new ArrayList&lt;>();         for (int i=0; i&lt;listOfMaps.size(); i++) {             \/*             * getting each map collection             * *\/             Map&lt;String,String> row = listOfMaps.get(i);             \/*             * deleting empty values             *\/             row.entrySet().removeIf(y -> (y.getValue().equals(\"\")));              \/*deleting empty values in a longer way*\/  \/\/            for (Map.Entry&lt;String, String> entry: row.entrySet()) { \/\/                String key = entry.getKey(); \/\/                String value = entry.getValue(); \/\/                if(value.equals(\"\")){ \/\/                    row.remove(key); \/\/                } \/\/            }             \/*             * Turn map without empty fields to json             *\/             String requestBody = gson.toJson(row);             listOfJson.add(requestBody);         }         return listOfJson;     }        public List&lt;JsonObject> dataToListOfJson2(List&lt;Map&lt;String, String>> listOfMaps){         Gson gson = new Gson();         List&lt;JsonObject> listOfJson = new ArrayList&lt;>();          for (int i=0; i&lt;listOfMaps.size(); i++) {             \/*              * getting each map collection              * *\/             Map&lt;String,String> row = listOfMaps.get(i);             JsonObject jsElemMap = new JsonObject();              \/*              * deleting keys that have empty values              *\/             row.entrySet().removeIf(y -> (y.getValue().equals(\"\")));              \/*iteration map to change value classes and add them to json object *\/              for (Map.Entry&lt;String, String> entry: row.entrySet()) {                 String key = entry.getKey();                 String value = entry.getValue();                 if (key.indexOf(\"**\")>0) {                     int x =  key.indexOf(\"**\");                     String keyWord = toLowerCase(key.substring(0, x));                      \/*work with Integer*\/                     if (keyWord.equals(INT_VAL)){                         JsonElement a = gson.toJsonTree(Integer.parseInt(value));                         jsElemMap.add(key.substring(x+2), a);                     }                     \/*work with Float*\/                      else if (keyWord.equals(FLOAT_VAL)){                         value = value.replace(\",\", \".\");                         JsonElement a = gson.toJsonTree(Float.parseFloat(value));                         jsElemMap.add(key.substring(x+2), a);                     }                     \/*work with Boolean*\/                      else if (keyWord.equals(BOOLEAN_VAL)){                         JsonElement a = gson.toJsonTree(Boolean.parseBoolean(value));                         jsElemMap.add(key.substring(x+2), a);                     }                                                                                         \/*work with array*\/                      else if (keyWord.equals(ARRAY_VAL)&amp;&amp; excelSheetNames(PATH_TO_EXCEL_DOC).contains(key.substring(x+2))){                         List arr = arrayVal(PATH_TO_EXCEL_DOC, key.substring(x+2), Integer.parseInt(value));                         JsonElement a = gson.toJsonTree(arr);                         jsElemMap.add(key.substring(x+2), a);                     }                                                                                                             \/*work with JsonObjects *\/                     \/*If Excel file contains sheet which name equals keyWord *\/                      else if (excelSheetNames(PATH_TO_EXCEL_DOC).contains(keyWord)){                          \/*get this sheet as list of json*\/                          List aa = dataToListOfJson2(fromExcelToListOfMaps(PATH_TO_EXCEL_DOC,keyWord));                         \/*and add one of json as value of current key*\/                         jsElemMap.add(key.substring(x+2), gson.toJsonTree(aa.get(Integer.parseInt(value))));                      }                 }else{                     \/*If there is no keyWord*\/                     jsElemMap.add(key, gson.toJsonTree(value) );                 }              }             \/* remove all keys with keyword *\/             row.entrySet().removeIf(y -> (y.getKey().contains(\"**\")));              \/*              * Turn map without empty fields to json              *\/              listOfJson.add(jsElemMap);         }          return listOfJson;     }         public List arrayVal(String pathToExcel, String sheetName, int rowNumber){           List&lt;JsonObject> x = dataToListOfJson2(fromExcelToListOfMaps(pathToExcel, sheetName));         JsonObject dataForArray = x.get(rowNumber);         List&lt;Object> arr= new LinkedList&lt;>();         for(String key : dataForArray.keySet()){             arr.add(dataForArray.get(key));         }         return arr;     }                    \/*getting names of sheets to list*\/     public List&lt;String> excelSheetNames(String filePath){         Fillo fillo = new Fillo();         Connection connection =null;         List&lt;String> names = new ArrayList&lt;>();         try {             connection = fillo.getConnection(filePath);             names = connection.getMetaData().getTableNames();             connection.close();          } catch (FilloException filloException) {             connection.close();             filloException.printStackTrace();         }         return names;     }    } <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0412 \u043e\u0431\u0449\u0435\u043c \u043f\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u0443 \u043d\u0430 \u044d\u0442\u043e\u043c \u0432\u0441\u0435, \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443. \u041e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u043e\u043c\u0435\u0440\u0430 \u0441\u0442\u0440\u043e\u043a, \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0438\u0445\u0441\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u043c \u043b\u0438\u0441\u0442\u0435, \u043d\u0435 \u043e\u0447\u0435\u043d\u044c-\u0442\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e, \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u0430. \u0422\u0443\u0442 \u043c\u043d\u0435 \u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u043f\u0440\u0438\u0448\u043b\u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430. \u0415\u0441\u043b\u0438 \u0432 \u0438\u043c\u0435\u043d\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0434\u0432\u0435 \u0437\u0432\u0435\u0437\u0434\u043e\u0447\u043a\u0438 (**), \u043d\u043e \u0442\u0435\u043a\u0441\u0442 \u043f\u0435\u0440\u0435\u0434 ** \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0437 \u043a\u043b\u044e\u0447\u0435\u0439, \u0442\u043e \u044d\u0442\u043e\u0442 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0438 \u0432 \u043d\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044e, \u0438\u043b\u0438 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u0430. \u042f \u0441\u0442\u0430\u0432\u0438\u043b \u0447\u0435\u0442\u044b\u0440\u0435 \u0437\u0432\u0435\u0437\u0434\u043e\u0447\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0441\u0445\u043e\u0434\u0443 \u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u0432 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0435\u0442. \u0422\u0430\u0431\u043b\u0438\u0446\u044b \u0441\u0442\u0430\u043b\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a: <\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>int**Id<\/p>\n<\/td>\n<td>\n<p>First_Name<\/p>\n<\/td>\n<td>\n<p>Last_Name<\/p>\n<\/td>\n<td>\n<p>int**Age<\/p>\n<\/td>\n<td>\n<p>Gender<\/p>\n<\/td>\n<td>\n<p>pay**paycheck<\/p>\n<\/td>\n<td>\n<p><u>com****coment<\/u><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>0<\/p>\n<\/td>\n<td>\n<p>Wasja<\/p>\n<\/td>\n<td>\n<p>Smith<\/p>\n<\/td>\n<td>\n<p>19<\/p>\n<\/td>\n<td>\n<p>m<\/p>\n<\/td>\n<td>\n<p>0<\/p>\n<\/td>\n<td rowspan=\"8\">\n<p>&lt;&#8212;\u00a0 Point off row****number from the sheet pay<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>1<\/p>\n<\/td>\n<td>\n<p>Tanja<\/p>\n<\/td>\n<td>\n<p>Johnson<\/p>\n<\/td>\n<td>\n<p>25<\/p>\n<\/td>\n<td>\n<p>f<\/p>\n<\/td>\n<td>\n<p>0<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>2<\/p>\n<\/td>\n<td>\n<p>Ighor<\/p>\n<\/td>\n<td>\n<p>Williams<\/p>\n<\/td>\n<td>\n<p>42<\/p>\n<\/td>\n<td>\n<p>m<\/p>\n<\/td>\n<td>\n<p>1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>3<\/p>\n<\/td>\n<td>\n<p>Masha<\/p>\n<\/td>\n<td>\n<p>Brown<\/p>\n<\/td>\n<td>\n<p>19<\/p>\n<\/td>\n<td>\n<p>f<\/p>\n<\/td>\n<td>\n<p>1<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>4<\/p>\n<\/td>\n<td>\n<p>Olja<\/p>\n<\/td>\n<td>\n<p>Davis<\/p>\n<\/td>\n<td>\n<p>18<\/p>\n<\/td>\n<td>\n<p>f<\/p>\n<\/td>\n<td>\n<p>3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>5<\/p>\n<\/td>\n<td>\n<p>Oleg<\/p>\n<\/td>\n<td>\n<p>Miller<\/p>\n<\/td>\n<td>\n<p>25<\/p>\n<\/td>\n<td>\n<p>m<\/p>\n<\/td>\n<td>\n<p>4<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>6<\/p>\n<\/td>\n<td>\n<p>Kolja<\/p>\n<\/td>\n<td>\n<p>Wilson<\/p>\n<\/td>\n<td>\n<p>21<\/p>\n<\/td>\n<td>\n<p>m<\/p>\n<\/td>\n<td>\n<p>3<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>7<\/p>\n<\/td>\n<td>\n<p>Andrew<\/p>\n<\/td>\n<td>\n<p>Moore<\/p>\n<\/td>\n<td>\n<p>20<\/p>\n<\/td>\n<td>\n<p>m<\/p>\n<\/td>\n<td>\n<p>1<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p><u>row****numb<\/u><\/p>\n<\/td>\n<td>\n<p>flo**salary<\/p>\n<\/td>\n<td>\n<p>flo**bonus<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>0<\/p>\n<\/td>\n<td>\n<p>20<\/p>\n<\/td>\n<td>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>1<\/p>\n<\/td>\n<td>\n<p>25<\/p>\n<\/td>\n<td>\n<p>4,75<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>2<\/p>\n<\/td>\n<td>\n<p>22<\/p>\n<\/td>\n<td>\n<p>4<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>3<\/p>\n<\/td>\n<td>\n<p>33,3<\/p>\n<\/td>\n<td>\n<p>5,8<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>4<\/p>\n<\/td>\n<td>\n<\/td>\n<td>\n<p>100<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0432\u0441\u0435 \u044d\u0442\u043e \u0432 \u0434\u0430\u0442\u0430\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 \u0438 \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0432 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0434\u0432\u0443\u0445\u043c\u0435\u0440\u043d\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0441\u0442\u0440\u043e\u043a.<\/p>\n<pre><code>    @DataProvider(name = \"Request2\")     public Object[][] request2() {         List&lt;JsonObject> listOfJson = base.dataToListOfJson2(base                 .fromExcelToListOfMaps(PATH_TO_EXCEL_DOC,SHEET_NAME));         String[][] arrayOfJson = new String[listOfJson.size()][1];         for(int i = 0; i&lt; listOfJson.size(); i++){             arrayOfJson[i][0] = listOfJson.get(i).toString();         }         return arrayOfJson;     }<\/code><\/pre>\n<p>\u0418 \u0434\u0430\u043b\u044c\u0448\u0435 \u0432 \u0442\u0435\u0441\u0442:<\/p>\n<pre><code>    @Test(dataProvider = \"Request2\")     public void exampleTest1_3 (String request){         given()                 .spec(requestPostEvents(request))                 .when()                 .log().body()                 .post();     }<\/code><\/pre>\n<p>\u0422\u0435\u043b\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430:<\/p>\n<details class=\"spoiler\">\n<summary>Hidden text<\/summary>\n<div class=\"spoiler__content\">\n<p>Body:<br \/> {<br \/> &#171;shop_name&#187;: &#171;shop#1&#187;,<br \/> &#171;\u0441ity&#187;: &#171;Charkiv&#187;,<br \/> &#171;income_per_month&#187;: [<br \/> 78500,<br \/> 22222,<br \/> 2222,<br \/> 159<br \/> ],<br \/> &#171;employee_qty&#187;: 3,<br \/> &#171;employees&#187;: [<br \/> {<br \/> &#171;Id&#187;: 0,<br \/> &#171;First_Name&#187;: &#171;Wasja&#187;,<br \/> &#171;Last_Name&#187;: &#171;Smith&#187;,<br \/> &#171;Age&#187;: 19,<br \/> &#171;Gender&#187;: &#171;m&#187;,<br \/> &#171;paycheck&#187;: {<br \/> &#171;salary&#187;: 20.0<br \/> }<br \/> },<br \/> {<br \/> &#171;Id&#187;: 1,<br \/> &#171;First_Name&#187;: &#171;Tanja&#187;,<br \/> &#171;Last_Name&#187;: &#171;Johnson&#187;,<br \/> &#171;Age&#187;: 25,<br \/> &#171;Gender&#187;: &#171;f&#187;,<br \/> &#171;paycheck&#187;: {<br \/> &#171;salary&#187;: 20.0<br \/> }<br \/> },<br \/> {<br \/> &#171;Id&#187;: 2,<br \/> &#171;First_Name&#187;: &#171;Ighor&#187;,<br \/> &#171;Last_Name&#187;: &#171;Williams&#187;,<br \/> &#171;Age&#187;: 42,<br \/> &#171;Gender&#187;: &#171;m&#187;,<br \/> &#171;paycheck&#187;: {<br \/> &#171;salary&#187;: 25.0,<br \/> &#171;bonus&#187;: 4.75<br \/> }<br \/> }<br \/> ],<br \/> &#171;work_time&#187;: &#171;09,00-18,00&#187;,<br \/> &#171;Sunday_off&#187;: true,<br \/> &#171;goods&#187;: {<br \/> &#171;tobacco&#187;: true,<br \/> &#171;alcohol&#187;: true,<br \/> &#171;groshery&#187;: true,<br \/> &#171;weapons&#187;: false,<br \/> &#171;drugs&#187;: false<br \/> }<br \/> }<\/p>\n<\/div>\n<\/details>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b, \u0443\u0434\u0430\u043b\u0435\u043d\u044b \u0438\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u044b \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u0438\u043b\u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435,  \u043c\u043d\u0435 \u0434\u0430\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u0442\u044c \u0432 \u043a\u043e\u0434, \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0447\u043a\u0443. \u041a\u0430\u043a \u0438 \u0432\u0441\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e\u0435, \u0432 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0443\u0434\u043e\u0431\u043d\u043e, \u043d\u043e \u043f\u0440\u0438\u0432\u044b\u043a\u043d\u0443\u0442\u044c \u043c\u043e\u0436\u043d\u043e.<\/p>\n<p>\u0412\u0441\u0435 \u044d\u0442\u043e \u043f\u0438\u0441\u0430\u043b\u043e\u0441\u044c \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, <a href=\"https:\/\/github.com\/llaskot\/AutomationTestSolution\" rel=\"noopener noreferrer nofollow\">\u043a\u043b\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0437\u0434\u0435\u0441\u044c<\/a>.<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0444\u0430\u0439\u043b Data.xlsx \u043f\u043e\u0434 \u0432\u0430\u0448\u0438 \u043d\u0443\u0436\u0434\u044b \u0438 \u043f\u043e\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u044b \u0438\u0437 \u043a\u043b\u0430\u0441\u0441\u0430 ExampleTests , \u0447\u0442\u043e \u0431\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u043b\u0438 \u0432\u044b \u0442\u043e, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0441 API (+WEB) \u0442\u0435\u0441\u0442\u0430\u043c\u0438, \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0448\u0430\u0431\u043b\u043e\u043d.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u043d\u043e \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u044d\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u043e, \u0442\u043e \u0441\u043a\u043e\u043f\u0438\u0440\u0443\u0439\u0442\u0435 \u043f\u0430\u043a\u0435\u0442\u044b api \u0438 \u0444\u0430\u0439\u043b Data.xlsx \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u0430 Maven + TestNG, \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043d\u0443\u0436\u043d\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0438 \u043f\u0438\u0448\u0438\u0442\u0435 \u0442\u0435\u0441\u0442\u044b \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 ExampleTests.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e0a\/de3\/f3a\/e0ade3f3a96b2b450208d6f8ce81107b.png\" width=\"514\" height=\"563\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e0a\/de3\/f3a\/e0ade3f3a96b2b450208d6f8ce81107b.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0421\u043e\u0431\u0438\u0440\u0430\u044e\u0441\u044c \u043f\u043e\u0442\u0438\u0445\u043e\u043d\u044c\u043a\u0443 \u043f\u0435\u0440\u0435\u0442\u044f\u043d\u0443\u0442\u044c \u0441\u044e\u0434\u0430 \u0432\u0441\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0435\u0442\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b &#8212; \u043f\u0443\u0441\u0442\u044c \u0432\u0441\u0435 \u043b\u0435\u0436\u0438\u0442 \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435! \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0434\u0440\u0443\u0433\u0438\u043c \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0430\u043c).<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/658763\/\"> https:\/\/habr.com\/ru\/post\/658763\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0435\u0434\u0430\u0432\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c API \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u044b &#8212; \u0437\u0430\u043f\u0440\u043e\u0441\u044b Post \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u0442\u0435\u043b\u0435, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 JSON \u043e\u0431\u044a\u0435\u043a\u0442\u044b, \u043c\u0430\u0441\u0441\u0438\u0432\u044b , \u043c\u0430\u0441\u0441\u0438\u0432\u044b JSON \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u041c\u043d\u043e\u0433\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0435 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435, \u0430 \u0437\u043d\u0430\u0447\u0438\u0442 &#8212; \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430\u0431\u043e\u0440\u043e\u0432 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0414\u0430\u043d\u043e: \u0414\u0430\u0442\u0430\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440 &#8212; \u0434\u043b\u044f \u043c\u043d\u043e\u0433\u043e\u043a\u0440\u0430\u0442\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0442\u0435\u0441\u0442\u043e\u0432, \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 Excel. <\/p>\n<p>\u0427\u0442\u043e \u0431\u044b \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u043b\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u0447\u0435\u0440\u0435\u0437 \u0441\u0435\u0442\u0442\u0435\u0440\u044b \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 \u0438 \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c JSON, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u043a\u0430\u043a \u0442\u0435\u043b\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u0418 \u0432\u0434\u0440\u0443\u0433 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0432\u0441\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0435 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u044d\u043d\u0434\u043f\u043e\u0438\u043d\u0442\u043e\u0432. \u0422\u043e\u0433\u0434\u0430 \u0438 \u0440\u0435\u0448\u0438\u043b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0435\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 Excel \u0432 JSON \u043e\u0431\u044a\u0435\u043a\u0442 \u0431\u0435\u0437 \u0432\u0441\u044f\u043a\u0438\u0445 \u0442\u0430\u043c \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0438 \u043f\u0440\u0430\u0432\u043e\u043a \u0432 \u043a\u043e\u0434\u0435. \u041d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0430\u0432\u0438\u043b \u043f\u0440\u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. <\/p>\n<p>\u0418\u0442\u0430\u043a! \u0414\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0442\u0430\u0431\u043b\u0438\u0446\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b, \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e, Fillo. \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0431\u0443\u0434\u0435\u0442 \u043a\u043b\u044e\u0447\u043e\u043c, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u0435, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043a\u043b\u044e\u0447\u0430 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441\u0435. \u0421\u0442\u0440\u043e\u043a\u0430 \u0442\u0430\u0431\u043b\u0438\u0446\u044b &#8212; \u043e\u0434\u0438\u043d \u043d\u0430\u0431\u043e\u0440 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.<\/p>\n<p>\u0414\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a \u043d\u0430 \u0432\u0445\u043e\u0434\u0435:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>shop_name<\/p>\n<\/td>\n<td>\n<p>\u0441ity<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>shop#1<\/p>\n<\/td>\n<td>\n<p>Charkiv<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>shop#2<\/p>\n<\/td>\n<td>\n<p>Kyiv<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>shop#3<\/p>\n<\/td>\n<td>\n<p>Dnipro<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435:<\/p>\n<pre><code>[{\"shop_name\": \"shop#1\", \"\u0441ity\": \"Charkiv\"}, {\"shop_name\": \"shop#2\", \"\u0441ity\": \"Kyiv\"}, {\"shop_name\": \"shop#3\", \"\u0441ity\": \"Dnipro\"}]<\/code><\/pre>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430, \u043c\u0435\u0442\u043e\u0434 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0412\u0421\u0415\u0425 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 Excel \u043b\u0438\u0441\u0442\u0430 \u0432 \u0432\u0438\u0434\u0435 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 \u043c\u0430\u043f\u043e\u0432. \u0420\u0430\u043d\u044c\u0448\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0434\u043b\u044f \u043f\u043e\u0445\u043e\u0436\u0438\u0445 \u0437\u0430\u0434\u0430\u0447 \u0434\u043b\u044f \u0432\u0435\u0431\u0442\u0435\u0441\u0442\u043e\u0432. \u041c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0434\u0432\u0435 \u0441\u0442\u0440\u043e\u043a\u0438: \u043f\u0443\u0442\u044c \u043a Excel \u0444\u0430\u0439\u043b\u0443 \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043b\u0438\u0441\u0442\u0430. \u042d\u0442\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0437\u0430\u0445\u0430\u0440\u0434\u043a\u043e\u0434\u0438\u0442\u044c, \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0442\u0435\u043b\u0430 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0438\u0437 Excel \u0444\u0430\u0439\u043b\u0430. \u042f \u0441\u043e\u0437\u0434\u0430\u044e \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442 \u0438 \u0442\u0430\u043c, \u0435\u0441\u043b\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u043c\u0435\u043d\u044f\u044e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0442\u043e\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432\u043e \u0432\u0441\u0435\u0445 \u0442\u0435\u0441\u0442\u0430\u0445.<\/p>\n<details class=\"spoiler\">\n<summary>Hidden text<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>    public List fromExcelToListOfMaps (String docPath, String sheet)  {         PATH_TO_EXCEL_DOC = docPath;         Fillo fillo = new Fillo();         Connection connection;         List&lt;Map&lt;String, String>> listOfMaps = new ArrayList&lt;>();         try {            \/* getting all the data from excel file *\/             connection = fillo.getConnection(PATH_TO_EXCEL_DOC);             Recordset recordset = connection.executeQuery(\"Select * From \"                     +sheet+\" \");           \/* getting column names*\/             ArrayList&lt;String> keys = recordset.getFieldNames();             int size = keys.size();                \/* creating array of maps*\/             while (recordset.next()) {                 Map&lt;String, String> values = new LinkedMap&lt;>();                 for (int i = 0; i  &lt;size; i++) {                      String key = keys.get(i);                     String value = recordset.getField(key);                     values.put(key, value);                  }                 listOfMaps.add(values);              }             recordset.close();             connection.close();         } catch (FilloException e) {             e.printStackTrace();         }         return listOfMaps;      } <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/p>\n<p><code>[{shop_name=shop#1, \u0441ity=Charkiv}, {shop_name=shop#2, \u0441ity=Kyiv}, {shop_name=shop#3, \u0441ity=Dnipro}]<\/code><\/p>\n<p>\u041f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u043c\u0430\u043f\u0443 \u0432 JSON \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GSON \u043c\u043e\u0436\u043d\u043e \u0437\u0430 \u043e\u0434\u043d\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435, \u043d\u043e \u0442\u0443\u0442 \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0443\u0441\u0442\u044b\u0435 \u043a\u043b\u044e\u0447\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0438\u0445 \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u043f\u0438\u043b\u0438\u0442\u044c \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435. \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043c\u0430\u0441\u0441\u0438\u0432 \u0438\u0437 \u043c\u0435\u0442\u043e\u0434\u0430 fromExcelToListOfMaps , \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u043a\u043b\u044e\u0447\u0438 \u0431\u0435\u0437 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043c\u0430\u0441\u0441\u0438\u0432 JSON \u0441\u0442\u0440\u043e\u043a. <\/p>\n<pre><code>    public List&lt;String> dataToListOfJson(List&lt;Map&lt;String, String>> listOfMaps){         Gson gson = new Gson();         List&lt;String> listOfJson = new ArrayList&lt;>();         for (int i=0; i&lt;listOfMaps.size(); i++) {             \/*             * getting each map collection             * *\/             Map&lt;String,String> row = listOfMaps.get(i);             \/*             * deleting empty values             *\/             row.entrySet().removeIf(y -> (y.getValue().equals(\"\")));             \/*             * Turn map without empty fields to json             *\/             String requestBody = gson.toJson(row);             listOfJson.add(requestBody);         }         return listOfJson;     }<\/code><\/pre>\n<p>\u041d\u0430 \u0432\u0445\u043e\u0434\u0435:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>shop_name<\/p>\n<\/td>\n<td>\n<p>\u0441ity<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>shop#1<\/p>\n<\/td>\n<td>\n<p>Charkiv<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<\/td>\n<td>\n<p>Kyiv<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>shop#3<\/p>\n<\/td>\n<td>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430:<\/p>\n<p>[{shop_name=shop#1, \u0441ity=Charkiv},<\/p>\n<p> {shop_name=, \u0441ity=Kyiv},<\/p>\n<p> {shop_name=shop#3, \u0441ity=}]<\/p>\n<p>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435:<\/p>\n<p>[{&#171;shop_name&#187;:&#187;shop#1&#8243;,&#187;\u0441ity&#187;:&#187;Charkiv&#187;},<\/p>\n<p> {&#171;\u0441ity&#187;:&#187;Kyiv&#187;}, <\/p>\n<p>{&#171;shop_name&#187;:&#187;shop#3&#8243;}]<\/p>\n<p>\u0412 \u0442\u0430\u043a\u043e\u043c \u0432\u0438\u0434\u0435 \u0443\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432 \u0434\u0430\u0442\u0430\u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440, \u043d\u043e \u0443 \u043c\u0435\u043d\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0438\u043f\u0430 String. \u0410 \u043a\u0430\u043a \u043e\u0431\u044a\u044f\u0441\u043d\u0438\u0442\u044c \u043c\u0435\u0442\u043e\u0434\u0443, \u0447\u0442\u043e \u0432\u043e\u0442 \u044d\u0442\u043e \u0432\u043e\u0442 boolean, \u0430 \u0432\u043e\u0442 \u044d\u0442\u043e Integer \u0438 \u043a\u0430\u0432\u044b\u0447\u043a\u0438 \u0442\u0443\u0442 \u043d\u0435 \u043d\u0443\u0436\u043d\u044b, \u0430 \u0442\u0430\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u043c\u0430\u0441\u0441\u0438\u0432 JSON \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u0418 \u0432 \u043a\u043e\u0434\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f, \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f \u043d\u0435 \u0443\u043d\u0438\u0432\u0435\u0440\u0441\u0430\u043b\u044c\u043d\u043e. \u0420\u0435\u0448\u0438\u043b \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430:<\/p>\n<ol>\n<li>\n<p>string &#8212; \u043d\u0435\u0442 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430<\/p>\n<\/li>\n<li>\n<p>boolean &#8212; bool<\/p>\n<\/li>\n<li>\n<p>float &#8212; flo<\/p>\n<\/li>\n<li>\n<p>int &#8212; int<\/p>\n<\/li>\n<\/ol>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u043e\u0442\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u043a\u043b\u044e\u0447\u0430 \u0434\u0432\u0443\u043c\u044f \u0437\u0432\u0435\u0437\u0434\u043e\u0447\u043a\u0430\u043c\u0438 (**). \u0422\u0435\u043f\u0435\u0440\u044c, \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u043d\u0430 \u043f\u0443\u0441\u0442\u044b\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 \u0432 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0438 \u0441\u0442\u043e\u043b\u0431\u0446\u0430, \u0438, \u0435\u0441\u043b\u0438 \u044d\u0442\u043e \u0441\u043b\u043e\u0432\u043e \u0435\u0441\u0442\u044c \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0434\u043d\u043e\u043c\u0443 \u0438\u0437 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435, \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u043a\u043b\u044e\u0447 (\u043e\u0442\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0438 \u0437\u0432\u0435\u0437\u0434\u043e\u0447\u043a\u0438) \u0438 \u0435\u043c\u0443 \u043f\u0440\u0438\u0441\u0432\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435\u043c \u043a \u043d\u0443\u0436\u043d\u043e\u043c\u0443 \u0442\u0438\u043f\u0443 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code>            public static final String FLOAT_VAL = \"flo\";             public static final String BOOLEAN_VAL  = \"bool\";                                                           \/*work with Float*\/                  else if (keyWord.equals(FLOAT_VAL)){                     value = value.replace(\",\", \".\");                     JsonElement a = gson.toJsonTree(Float.parseFloat(value));                     jsElemMap.add(key.substring(x+2), a);                 }                 \/*work with Boolean*\/                  else if (keyWord.equals(BOOLEAN_VAL)){                     JsonElement a = gson.toJsonTree(Boolean.parseBoolean(value));                     jsElemMap.add(key.substring(x+2), a);<\/code><\/pre>\n<p>\u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0438\u0437 \u043c\u0430\u043f\u044b \u0432\u044b\u043f\u0438\u043b\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043f\u0430\u0440\u044b \u0432 \u043a\u043b\u044e\u0447\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 ** . \u0422.\u0435. \u0435\u0441\u043b\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439,  \u0442\u043e \u044d\u0442\u0430 \u043a\u043e\u043b\u043e\u043d\u043a\u0430 \u0432 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0435 \u043f\u043e\u043f\u0430\u0434\u0435\u0442.<\/p>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435<\/p>\n<p>\u041d\u0430 \u0432\u0445\u043e\u0434\u0435:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p>shop_name<\/p>\n<\/td>\n<td>\n<p>\u0441ity<\/p>\n<\/td>\n<td>\n<p>Int**employee_qty<\/p>\n<\/td>\n<td>\n<p>Bool**Sunday_off<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>shop#1<\/p>\n<\/td>\n<td>\n<p>Charkiv<\/p>\n<\/td>\n<td>\n<p>3<\/p>\n<\/td>\n<td>\n<p>true<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>shop#2<\/p>\n<\/td>\n<td>\n<p>Kyiv<\/p>\n<\/td>\n<td>\n<p>3<\/p>\n<\/td>\n<td>\n<p>true<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>shop#3<\/p>\n<\/td>\n<td>\n<p>Dnipro<\/p>\n<\/td>\n<td>\n<p>2<\/p>\n<\/td>\n<td>\n<p>false<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u043d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435:<\/p>\n<p><code>[{\"shop_name\":\"shop#1\",\"\u0441ity\":\"Charkiv\",\"employee_qty\":3,\"Sunday_off\":true}, {\"shop_name\":\"shop#2\",\"\u0441ity\":\"Kyiv\",\"employee_qty\":3,\"Sunday_off\":true}, {\"shop_name\":\"shop#3\",\"\u0441ity\":\"Dnipro\",\"employee_qty\":2,\"Sunday_off\":false}]<\/code><\/p>\n<p>\u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0442\u0438\u043f\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Map&lt;String, String> \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0441\u044f, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0441\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0438\u0440\u0430\u044e\u0442\u0441\u044f \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0442\u0438\u043f\u0430 JsonObject. <\/p>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043b\u044e\u0447\u0438 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043a\u043b\u0430\u0441\u0441\u0430 JsonObject. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0432 Excel \u044f\u0447\u0435\u0439\u043a\u0443 \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e \u0442\u0438\u043f\u0430 {&#171;salary&#187;: 25.0,&#187;bonus&#187;: 4.75}, \u043d\u043e \u0432\u0435\u0434\u044c \u0443 \u043c\u0435\u043d\u044f \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u043c\u0435\u0442\u043e\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0431\u0435\u0440\u0435\u0442 JSON \u0438\u0437 \u043b\u0438\u0441\u0442\u0430 Excel. \u041d\u0443\u0436\u043d\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043b\u0438\u0441\u0442 \u0438 \u0441\u0442\u0440\u043e\u043a\u0443 \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u041f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0438. \u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e:<\/p>\n<ol start=\"5\">\n<li>\n<p>JsonObject &#8212; \u0415\u0441\u043b\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435      \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0430 \u043d\u0443\u0436\u0435\u043d JsonObject, \u0442\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441      \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c Excel \u043b\u0438\u0441\u0442\u0430, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0435\u0440\u0443\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 (\u0434\u043e\u0431\u0430\u0432\u0438\u043b \u043c\u0435\u0442\u043e\u0434 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0449\u0438\u0439 \u0432\u0441\u0435 \u0438\u043c\u0435\u043d\u0430 \u043b\u0438\u0441\u0442\u043e\u0432 Excel \u0444\u0430\u0439\u043b\u0430 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432). \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u044f\u0447\u0435\u0439\u043a\u0435 (\u0442\u0438\u043f int) &#8212; \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 \u0432 \u044d\u0442\u043e\u043c \u043b\u0438\u0441\u0442\u0435 (\u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u0441 \u043d\u0443\u043b\u044f).<\/p>\n<\/li>\n<\/ol>\n<pre><code>\/*work with JsonObjects *\/                     \/*If Excel file contains sheet which name equals keyWord *\/                      else if (excelSheetNames(PATH_TO_EXCEL_DOC).contains(keyWord)){                          \/*get this sheet as list of json*\/                          List aa = dataToListOfJson2(fromExcelToListOfMaps(PATH_TO_EXCEL_DOC,keyWord));                         \/*and add one of json as value of current key*\/                         jsElemMap.add(key.substring(x+2), gson.toJsonTree(aa.get(Integer.parseInt(value))));                      }<\/code><\/pre>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043d\u0430 \u0432\u0445\u043e\u0434\u0435:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435:<\/p>\n<p><code>[{\"Id\":0,\"First_Name\":\"Wasja\",\"Last_Name\":\"Smith\",\"Age\":19,\"Gender\":\"m\",\"paycheck\":{\"salary\":20.0}}, {\"Id\":1,\"First_Name\":\"Tanja\",\"Last_Name\":\"Johnson\",\"Age\":25,\"Gender\":\"f\",\"paycheck\":{\"salary\":20.0}}, {\"Id\":250,\"First_Name\":\"Ighor\",\"Last_Name\":\"Williams\",\"Age\":42,\"Gender\":\"m\",\"paycheck\":{\"salary\":25.0,\"bonus\":4.75}}, {\"Id\":13,\"First_Name\":\"Masha\",\"Last_Name\":\"Brown\",\"Age\":19,\"Gender\":\"f\",\"paycheck\":{\"salary\":25.0,\"bonus\":4.75}}, {\"Id\":4,\"First_Name\":\"Olja\",\"Last_Name\":\"Davis\",\"Age\":18,\"Gender\":\"f\",\"paycheck\":{\"salary\":33.3,\"bonus\":5.8}}, {\"Id\":40,\"First_Name\":\"Oleg\",\"Last_Name\":\"Miller\",\"Age\":25,\"Gender\":\"m\",\"paycheck\":{\"bonus\":100.0}}, {\"Id\":6,\"First_Name\":\"Kolja\",\"Last_Name\":\"Wilson\",\"Age\":21,\"Gender\":\"m\",\"paycheck\":{\"salary\":33.3,\"bonus\":5.8}}, {\"Id\":7,\"First_Name\":\"Andrew\",\"Last_Name\":\"Moore\",\"Age\":20,\"Gender\":\"m\",\"paycheck\":{\"salary\":25.0,\"bonus\":4.75}}]<\/code><\/p>\n<p>\u041e\u0441\u0442\u0430\u043b\u0438\u0441\u044c \u043c\u0430\u0441\u0441\u0438\u0432\u044b. \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u0441\u0442\u043e\u0438\u043b\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043b\u043e\u0433\u0438\u043a\u0443 \u0441 \u043d\u0443\u043b\u044f, \u043d\u043e \u044f \u043f\u043e\u043b\u0435\u043d\u0438\u043b\u0441\u044f \u0438 \u0440\u0435\u0448\u0438\u043b \u0438\u0437 JsonObject \u0438 \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0441\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0432 List&lt;Object> . \u041d\u0430\u043f\u0438\u0441\u0430\u043b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u043c\u0435\u0442\u043e\u0434. \u041d\u0430 \u0432\u0445\u043e\u0434 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043f\u0443\u0442\u044c \u043a Excel \u0444\u0430\u0439\u043b\u0443, \u0438\u043c\u044f \u043b\u0438\u0441\u0442\u0430 \u0438 \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438 (\u043d\u0443\u043c\u0435\u0440\u0430\u0446\u0438\u044f \u0441 \u043d\u0443\u043b\u044f)<\/p>\n<pre><code>    public List arrayVal(String pathToExcel, String sheetName, int rowNumber){           List&lt;JsonObject> x = dataToListOfJson2(fromExcelToListOfMaps(pathToExcel, sheetName));         JsonObject dataForArray = x.get(rowNumber);         List&lt;Object> arr= new LinkedList&lt;>();         for(String key : dataForArray.keySet()){             arr.add(dataForArray.get(key));         }         return arr;     }<\/code><\/pre>\n<p>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e: <\/p>\n<ol start=\"6\">\n<li>\n<p>List&lt;Object> &#8212; arr. \u0418\u043c\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0442\u044c \u0441  \u0438\u043c\u0435\u043d\u0435\u043c Excel \u043b\u0438\u0441\u0442\u0430, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043c\u0430\u0441\u0441\u0438\u0432\u0430. \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u044f\u0447\u0435\u0439\u043a\u0435 (\u0442\u0438\u043f int) &#8212; \u043d\u043e\u043c\u0435\u0440 \u0441\u0442\u0440\u043e\u043a\u0438. \u0418\u043c\u044f \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432 Excel \u043b\u0438\u0441\u0442\u0435 \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u043d\u0430\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043c\u0430\u0441\u0441\u0438\u0432 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u0438\u043c\u0435\u044e\u0442, \u043d\u043e \u043e\u043d\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0442\u044c\u0441\u044f (Fillo \u043d\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442) \u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u043e\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e. (\u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043f\u0430 String \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e \u043d\u0435 \u043d\u0443\u0436\u043d\u043e).<\/p>\n<\/li>\n<\/ol>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u043a\u0430\u043a-\u0442\u043e \u0442\u0430\u043a \u043d\u0430 \u0432\u0445\u043e\u0434\u0435:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430 \u0432\u044b\u0445\u043e\u0434\u0435:<\/p>\n<p><code>[{\"shop_name\":\"shop#1\",\"\u0441ity\":\"Charkiv\",\"income_per_month\":[78500,22222,2222,159]}, {\"shop_name\":\"shop#2\",\"\u0441ity\":\"Kyiv\",\"income_per_month\":[56900,11111,987456,6423,98741]}, {\"shop_name\":\"shop#3\",\"\u0441ity\":\"Dnipro\",\"income_per_month\":[12694,33333,111111]}]<\/code><\/p>\n<p>\u0412\u043e\u0442 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043b\u0430\u0441\u0441 \u0441 \u043c\u0435\u0442\u043e\u0434\u0430\u043c\u0438:<\/p>\n<details class=\"spoiler\">\n<summary>Hidden text<\/summary>\n<div class=\"spoiler__content\">\n<pre><code>package api;<\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-331410","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/331410","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=331410"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/331410\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=331410"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=331410"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=331410"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}