Как запросить объекты JSON в недоступном? [Дубликат]

аннотация @RequestParam, используемая для доступа к значениям параметров запроса из запроса. Посмотрите на следующий URL-адрес запроса:

http://localhost:8080/springmvc/hello/101?param1=10¶m2=20

В приведенном выше запросе URL-адреса для параметров param1 и param2 можно получить доступ, как показано ниже:

public String getDetails(
    @RequestParam(value="param1", required=true) String param1,
        @RequestParam(value="param2", required=false) String param2){
...
}

Ниже приведен список параметров, поддерживаемых аннотацией @RequestParam:

  • defaultValue - это значение по умолчанию в качестве механизма возврата, если запрос не имеет значения или он пуст.
  • name - Требуется имя параметра для привязки
  • - независимо от того, является ли параметр обязательным или нет. Если это правда, не удается отправить этот параметр.
  • Значение
  • - это псевдоним для атрибута name

@PathVariable

@ PathVariable идентифицирует шаблон, который используется в URI для входящего запроса. Давайте посмотрим на следующий URL-адрес запроса:

http: // localhost: 8080 / springmvc / hello / 101? Param1 = 10 & amp; param2 = 20

Вышеуказанный URL-запрос может быть записан в вашем Spring MVC, как показано ниже:

@RequestMapping("/hello/{id}")    public String getDetails(@PathVariable(value="id") String id,
    @RequestParam(value="param1", required=true) String param1,
    @RequestParam(value="param2", required=false) String param2){
.......
}

Аннотация @PathVariable имеет только одно значение атрибута для привязки шаблона URI запроса. Разрешено использовать несколько аннотаций @PathVariable в одном методе. Но убедитесь, что не более одного метода имеет один и тот же шаблон.

Также есть еще одна интересная аннотация: @MatrixVariable

http: // localhost: 8080 / spring_3_2 / matrixvars / stocks; BT.A = 276,70, + 10,40, + 3,91, AZN = 236,00, + 103,00, + 3,29; SBRY = 375.50, + 7.60, + 2.07

И метод контроллера для него

 @RequestMapping(value = "/{stocks}", method = RequestMethod.GET)
  public String showPortfolioValues(@MatrixVariable Map> matrixVars, Model model) {

    logger.info("Storing {} Values which are: {}", new Object[] { matrixVars.size(), matrixVars });

    List> outlist = map2List(matrixVars);
    model.addAttribute("stocks", outlist);

    return "stocks";
  }

Но вы должны включить:


4
задан Max Murphy 16 August 2017 в 21:40
поделиться

1 ответ

Вам нужен список идентификаторов? Если да, попробуйте:

- debug: msg="{{ lookup('file','test.json') | from_json | json_query(query) }}"
  vars:
    query: "Foods[].{id: Id, for: (Tags[?Key=='For'].Value)[0]} | [?for=='Tigger'].id"

Сначала создайте простые объекты с необходимыми полями, а затем подключите их к фильтру.

10
ответ дан Konstantin Suvorov 16 August 2018 в 12:06
поделиться
  • 1
    Спасибо! Когда я смотрел, почему ваш ответ работал, я понял, что в json_query-фильтре используется jmespath, а не jsonpath узла или python. Использование правильной ссылки на язык помогает! Большое спасибо! – Max Murphy 22 December 2016 в 20:20
Другие вопросы по тегам:

Похожие вопросы: