我有一个LinkedHashMap,而MyClass有2个字符串变量 我想将其转换为Json,以便可以在javascript中解析 请分享操作方法。
我创建此结构是因为我需要以rowName,columnName及其值的格式存储表的值
结构
Map<String,MyClass> dataMap = new LinkedHashMap<String,MyClass>();
MyClass{
String fieldName;
String fieldValue;
}
答案 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