三个对象合而为一?

时间:2019-07-06 01:43:27

标签: java spring-boot

出现一个我返回三个json对象的问题。无论如何,我要做的就是将其作为一个JSON对象返回。与下面的我的结果类似。因此,我试图显示我的控制器-我相信它在我的控制器中将返回3个对象而不是一个对象。感谢您的帮助。

这是我的代码:

我尝试这样做:

@RequestMapping(value = "all", method = RequestMethod.GET)
    public @ResponseBody
    MyAutoComplete getMoney(@RequestParam(value = "myautocomplete") String myautocompleteValue) {

    List<MyAutoComplete> list = myautoCompleteService.gettingMoney(myautocompleteValue);
    return merge(list);

}


MyAutoComplete merge(List<MyAutoComplete> list){
    MyAutoComplete accountacy = list.get(0);
    for (int i = 1; i < list.size(); i++) {
        MyAutoComplete myautoComplete = list.get(i);
        if (myautoComplete.getTimeAnnual() != null) {
            accountacy.setTimeAnnual((autoComplete.getTimeAnnual(());
        }
        if (autoComplete.getTimeBiweekly() != null) {
            accountacy.setTimeBiweekly(autoComplete.getTimeBiweekly());
        }
        if (autoComplete.getTimeHourly() != null) {
            accountacy.setTimeHourly(autoComplete.getTimeHourly());
        }

    }
    return accountacy;
}

2 个答案:

答案 0 :(得分:1)

如果无法在存储库侧更改查询,则可以将列表中的对象合并为控制器中的单个对象

public @ResponseBody
LIst<AutoComplete> getSalary(@RequestParam(value = "autocomplete") String autocompleteValue) {

  List<AutoComplete> list = autoCompleteService.retrieveSalary(autocompleteValue);
  return Arrays.asList(merge(list));

}


AutoComplete merge(List<AutoComplete> list){
    AutoComplete acc = list.get(0);
    for (int i = 1; i < list.size(); i++) {
        AutoComplete autoComplete = list.get(i);
        if (autoComplete.getAnnual() != null) {
            acc.setAnnual(autoComplete.getAnnual());
        }
        if (autoComplete.getBiweekly() != null) {
            acc.setBiweekly(autoComplete.getBiweekly());
        }
        if (autoComplete.getHourly() != null) {
            acc.setHourly(autoComplete.getHourly());
        }

    }
    return acc;
}

答案 1 :(得分:0)

我只是在github上看到您的代码,但是关键代码不存在。现在我要说我想的。 此代码中可能会发生问题。

  @Repository
public interface AutoCompleteRepository extends CrudRepository<AutoComplete, String> {


  @Query("select e from AutoComplete e where e.jobClassCd like %:jobClassCd%")
  public Stream<AutoComplete> streamAll();


  List<AutoComplete> findByJobClassCdStartsWith(String jobClassCd);

}

在方法fingByJobClassCdStartsWith(String jobClassCd)中,我认为当您从 数据库中,您将获得三条记录,并且可以将其手动合并为一个对象。

或 您可以通过编辑问题在此处放置不可见的代码。