繁体   English   中英

在 Java 中将 Map 转换为 JSON

[英]Converting Map to JSON in Java

我有地图

Map<String, Application.RiskFactor> appRiskFactorsMap = app.getRiskFactors();
    

它有这样的数据

{risk1=Application.RiskFactor(risk=risk1, question=question1,     
factor=true), risk2=Application.RiskFactor(risk=risk2,     
question=question2?, factor=true), 
risk3=Application.RiskFactor(risk=risk3, question=question3?, 
factor=true)}

我正在将其转换为 JSON 并具有此输出。

{"risk1":{"risk":"risk1","question":"question1?","factor":"true"},"":
{"risk":"risk2","question":"question2?","factor":"true"},"risk3":
{"risk":"risk3","question":"question3?","factor":"true"}}

我有这个 JSON 转换器类包 system.referee.util;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;

public final class JsonUtils {

private static final ObjectMapper MAPPER = new ObjectMapper();

static {
    // Ignore unknown fields while deserialization
    MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

    // Ignore null & Optional.EMPTY fields while serialization
    MAPPER.setSerializationInclusion(JsonInclude.Include.NON_ABSENT);
}

public static <T> String toJson(T obj) {
    try {
        return MAPPER.writeValueAsString(obj);
    } catch (JsonProcessingException e) {
        return "";
    }
}

public static <T> T fromJson(String json, Class<T> type) {
    try {
        return MAPPER.readValue(json, type);
    } catch (JsonProcessingException e) {
        return null;
    }
}
}

我想以这种格式打印 JSON

    {"risk":"risk1","question":"question1?","factor":"true"},
    {"risk":"risk2","question":"question2?","factor":"true"},
    {"risk":"risk3","question":"question3?","factor":"true"}

有什么方法可以实现吗? 我无法找到任何帮助。 多谢

您应该忽略键并仅序列化值:

JsonUtils.toJson(appRiskFactorsMap.values())

结果将是一个JSON Array

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM