Как отправить массив Json из ajax в Spring Controller? - PullRequest
0 голосов
/ 03 марта 2019

У меня есть html-таблица, подобная приведенной ниже, из которой я преобразую данные в форму json и отправляю через ajax на контроллер пружины.В контроллере пружины я использовал @RequestParam Map<String, String> для получения значений, но я получил всю строку json в качестве единственного ключа.Используя modelAttribute, я могу добиться этого, но у меня есть разные сценарии, поэтому я не могу использовать класс модели, поэтому мне также нужны эти заголовки столбцов с их значениями.

<table>
<thead>
<tr>
    <th>Column 1</th>
    <th>Column 2</th>
    <th>Column 3</th>
</tr>
</thead>
<tbody>
<tr>
    <td>A1</td>
    <td>A2</td>
    <td></td>
</tr>
<tr>
    <td>B1</td>
    <td>B2</td>
    <td>B3</td>
</tr>
<tr>
    <td>C1</td>
    <td></td>
    <td>C3</td>
</tr>
</tbody>

Я конвертирую HTML-таблицуДанные в JSON и отправить через AJAX.-

  [
    {
    "Column 1": "A1",
    "Column 2": "A2",
    "Column 3": ""
    },
   {
    "Column 1": "B1",
    "Column 2": "B2",
    "Column 3": "B3"
   },
   {
    "Column 1": "C1",
    "Column 2": "",
    "Column 3": "C3"
   }
  ]

код AJAX -

$.ajax({
        type: "POST",
        //contentType : 'application/json; charset=utf-8',
        //dataType : 'json',
        url: "/gDirecotry/" + id,
        data: JSON.stringify(rows),
        success: function (result) {
            console.log(result);
        }
    });

Код контроллера Spring -

  @RequestMapping(value = "/gDirecotry/{id}", method = RequestMethod.POST)
  public @ResponseBody ModelAndView 
      getSearchUserProfiles(@PathVariable("id") String id,
                                 @RequestParam Map<String, String> 
   attributeMap) throws IOException {

return new ModelAndView("redirect:/home");
  }

Я хочу отобразить данные JSON в map<string,string>, как я могудостичь этого?

ВЫХОД: - Я получил всю эту строку как единственный ключ без значения.

[{"Column 1":"A1","Column 2":"A2","Column 3":""},{"Column 1":"B1","Column 
2":"B2","Column 3":"B3"},{"Column 1":"C1","Column 2":"","Column 3":"C3"}]

1 Ответ

0 голосов
/ 03 марта 2019

Изменение:

@RequestParam Map<String, String> attributeMap

На

@RequestBody List<Map<String, String>> attributeMap

Ваша JSON полезная нагрузка представляет собой массив объектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...