簡體   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