有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我有一个LinkedHashMap,MyClass有两个字符串变量 我想将其转换为Json,以便可以在javascript中对其进行比较 请分享如何做到这一点

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

结构

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

MyClass{
String fieldName;
String fieldValue;
}

共 (2) 个答案

  1. # 2 楼答案

    你可以使用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将对象写入字符串