簡體   English   中英

如何在 SpringBoot 中返回列表

[英]How to return list in SpringBoot

下面的代碼返回兩個對象的列表,如下所示:

[
    {
        value: "ssss",
    },
    {
        value: "ssss",
    },
]

但我想像這樣返回列表:

{
    value1:"xxxx",
    value2:"xxxx"
}

這是我的代碼

    @Override
    public List<OrderModel> getOrderByCode(UserEntity user) throws ErrorException {

        List<UserEntity> userOrder = userRepository.findByUserAndOrderCodeIn(user, Arrays.asList(OrderCodes.OK, OrderCodes.DONE));

        List<OrderModel> om = new ArrayList<OrderModel>();
        for(UserAnswerEntity userAnswerEntity : userAnswers){
            OrderModel orderModel = new OrderModel();
            orderModel.setValue(userAnswerEntity.getValue());

            om.add(orderModel );
        }

        return om;
    }
public class OrderModel{

    String value;

//get,set
}

有人可以告訴我如何只返回上面的列表嗎?

您正在嘗試做出自定義響應。 一種可能的方法是

Map<String,String> map = new HashMap<String,String>();
map.put("key1", "value1");
map.put("key2", "value2");

System.out.println(map.toString().replace("{", "[").replace("}", "]"));

將 getOrderByCode() 的返回類型更改為字符串,並將您的 List object 轉換為 JSON 字符串。

private static final ObjectMapper jsonMapper = new ObjectMapper().setSerializationInclusion(Include.NON_NULL);
return jsonMapper.writeValueAsString(om);

例如,您可以使用Map而不是List

嘗試這個:

  AtomicInteger index = new AtomicInteger()
  Function<UserAnswerEntity, String> createIndex = (userAnswer) -> "value" + index.getAndIncrement();
  return userAnswers.stream().collect(Collectors.toMap(createIndex, UserAnswerEntity::getValue));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM