首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为json对象获取枚举的值列表。

为json对象获取枚举的值列表。
EN

Stack Overflow用户
提问于 2021-12-08 08:05:53
回答 2查看 1.2K关注 0票数 0

我想要创建一个json对象的值"3D旅游“,”视频“,”仅照片“等。你可以找到下面的枚举类。我怎样才能实现这一点?

代码语言:javascript
复制
package com.padgea.listing.application.dto;

public enum General implements Catalogue {

Tour("3D Tour"),
Videos("Videos"),
Photos_Only("Photos Only"),
Price_Reduced("Price Reduced"),
Furnished("Furnished"),
Luxury("Luxury");

private final String value;

General(String value) {
    this.value = value;
}

public String getValue() {
    return value;
}

}

我需要一个像这样的输出{一般:"3D旅游“,”视频“,”仅照片“,等等}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-08 08:37:48

这将返回包含所有值的字符串列表。

代码语言:javascript
复制
    enum General implements Catalogue {

    Tour("3D Tour"),
    Videos("Videos"),
    Photos_Only("Photos Only"),
    Price_Reduced("Price Reduced"),
    Furnished("Furnished"),
    Luxury("Luxury");

    private final String value;

    General(String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }
    
    public static List<String> valuesList() {
        return Arrays.stream(General.values())
                          .map(General::getValue)
                          .collect(Collectors.toList());
    }
}

在一个层次上你会做一些类似的事情

代码语言:javascript
复制
myJson.put("General", General.valuesList())

输出将是

代码语言:javascript
复制
 {
    "General": ["3D Tour","Videos","Photos Only"]
 }
票数 2
EN

Stack Overflow用户

发布于 2021-12-08 08:42:18

有效的JSON如下所示

代码语言:javascript
复制
{
    "General": ["3D Tour","Videos","Photos Only"]
}

如果要使用Jackson库创建JSON,则需要创建如下类:

代码语言:javascript
复制
public class GeneralDTO {
    @JsonProperty("General")
    private String[] general;

    ...
}

然后需要创建GeneralDTO对象。

您可以在这样的数组中获取所有枚举值

代码语言:javascript
复制
String[] generalArray = Arrays.stream(General.values())
    .map(st -> st.getValue())
    .toArray(String[]::new);

然后,使用方法writeValueAsString of ObjectMapper类(杰克逊库的一部分),您可以从GeneralDTO对象中获取JSON字符串。

为了简化您可以使用Map<String, String[]>而不是GeneralDTO

代码语言:javascript
复制
Map<String, String[]> generalObject = new HashMap<>;
generalObject.put("General", generalArray);
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writeValueAsString(generalObject);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70271717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档