将Java LinkedHashMap <String,MyClass>转换为Json格式以在javascript中使用

时间:2019-07-18 17:48:49

标签: javascript java json

我有一个LinkedHashMap,而MyClass有2个字符串变量 我想将其转换为Json,以便可以在javascript中解析 请分享操作方法。

我创建此结构是因为我需要以rowName,columnName及其值的格式存储表的值

结构

Map<String,MyClass> dataMap = new LinkedHashMap<String,MyClass>();

MyClass{
String fieldName;
String fieldValue;
}

2 个答案:

答案 0 :(得分:0)

您可以使用Jackson 2库。

您可以找到一个示例here(第三部分):

import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class JacksonExample1 {

    public static void main(String[] args) {

        ObjectMapper mapper = new ObjectMapper();

        Staff staff = createStaff();

        try {

            // Java objects to JSON file
            mapper.writeValue(new File("c:\\test\\staff.json"), staff);

            // Java objects to JSON string - compact-print
            String jsonString = mapper.writeValueAsString(staff);

            System.out.println(jsonString);

            // Java objects to JSON string - pretty-print
            String jsonInString2 = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(staff);

            System.out.println(jsonInString2);

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    private static Staff createStaff() {

        Staff staff = new Staff();

        staff.setName("mkyong");
        staff.setAge(38);
        staff.setPosition(new String[]{"Founder", "CTO", "Writer"});
        Map<String, BigDecimal> salary = new HashMap() {{
            put("2010", new BigDecimal(10000));
            put("2012", new BigDecimal(12000));
            put("2018", new BigDecimal(14000));
        }};
        staff.setSalary(salary);
        staff.setSkills(Arrays.asList("java", "python", "node", "kotlin"));

        return staff;

    }

}

要继续创建一个ObjectMapper,则可以使用mapper.writeValue将对象写入文件,或者使用mapper.writeValueAsString将对象写入字符串。

答案 1 :(得分:-1)

您可以使用JSON库执行此操作。您可以使用org.json库。 这个答案会帮助你 Convert from LinkedHashMap to json string