简体   繁体   中英

Converting Map to JSON in Java

I am having a map

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

It has this data kind of in it

{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)}

I am converting it into JSON and having this output.

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

I have this JSON converter class package 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;
    }
}
}

I want to print the JSON in this format

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

is there any way to achieve that? I am unable to find any help with this. thanks a lot

You should ignore keys and serialise only values:

JsonUtils.toJson(appRiskFactorsMap.values())

Result will be a JSON Array .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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