该表的该字段类型是map<string,string>
对应类的该属性的类型需要定义成String,不可定义成Map<String,String> !!
方法1:
建表语句定义map的分隔符:
row format delimited
fields terminated by '|'
collection items terminated by ','
map keys terminated by ':'
NULL DEFINED AS ''
然后在java中封装好map后,不可直接把map.toString()的字符串写入字段(会有“=”,不能正确组成JSON格式的内容),也不可序列化为JSON格式的字符串后写入字段(会加很多“\”)!需要自己定义toString的方法:
public static String insertToMap(Map<String, String> map) {
StringBuilder sb = new StringBuilder();
Set<String> set = map.keySet();
for (String s : set) {
sb.append(s).append(":").append(StringUtils.isBlank(map.get(s)) ? "NULL" : map.get(s)).append(&#