java list转成map对象_JSON与Java对象、List、Map的互相转换

一、导入依赖项

本文采用Jackson完成JSON的转换,因此要导入jackson相关的依赖项,创建Maven项目自动导入包。jackson依赖可从下列网址获得:http://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind/2.9.6

com.fasterxml.jackson.core

jackson-databind

2.7.3

二、创建对象

创建TaskPath对象,接下来所有Json转换的对象都与该对象有关。

public class TaskPath {

private Integer X; //X坐标

private Integer Y; //Y坐标

private Integer Theta; //转角

public Integer getX() {

return X;

}

public void setX(Integer x) {

X = x;

}

public Integer getY() {

return Y;

}

public void setY(Integer y) {

Y = y;

}

public Integer getTheta() {

return Theta;

}

public void setTheta(Integer theta) {

Theta = theta;

}

}

三、创建测试程序,main函数

以下是Json和Java对象、List、Map的互相转换实现

public class JsonTest {

public static void main(String[] args) throws Exception {

ObjectMapper mapper = new ObjectMapper();

//Json转对象

String json="{\"x\":154,\"y\":24,\"theta\":14}";

TaskPath user = mapper.readValue(json, TaskPath.class);

System.out.println(user.getX()+" "+user.getY()+" "+user.getTheta());

//对象转Json

TaskPath taskPath1 = new TaskPath();

taskPath1.setX(123);

taskPath1.setY(345);

taskPath1.setTheta(15);

TaskPath taskPath2 = new TaskPath();

taskPath2.setX(12);

taskPath2.setY(34);

taskPath2.setTheta(15);

String string = mapper.writeValueAsString(taskPath1);

System.out.println(string);

//list转Json

Listlist = new ArrayList<>();

list.add(taskPath1);

list.add(taskPath2);

String ljson = mapper.writeValueAsString(list);

System.out.println(ljson);

//Json转list

JavaType jt = mapper.getTypeFactory().constructParametricType(ArrayList.class, TaskPath.class);

Listurlist = mapper.readValue(ljson, jt);

for(int i = 0;i < urlist.size();i++)

{

System.out.println(urlist.get(i).getX()+" "+ urlist.get(i).getY()+" "+urlist.get(i).getTheta());

}

//Map转Json

HashMapmap = new HashMap();

map.put("001", taskPath1);

map.put("002", taskPath2);

String mmjson = mapper.writeValueAsString(map);

System.out.println(mmjson);

//json转map

JavaType jvt = mapper.getTypeFactory().constructParametricType(HashMap.class,String.class,TaskPath.class);

MapMap = mapper.readValue(mmjson, jvt);

Setset = Map.keySet();

Iteratorit = set.iterator();

while(it.hasNext())

{

String str = it.next();

TaskPath path = Map.get(str);

System.out.println(str + ":"+path.getX()+" " + path.getY()+" " + path.getTheta());

}

}

}

实现结果如下:

154 24 14

{"x":123,"y":345,"theta":15}

[{"x":123,"y":345,"theta":15},{"x":12,"y":34,"theta":15}]

123 345 15

12 34 15

{"001":{"x":123,"y":345,"theta":15},"002":{"x":12,"y":34,"theta":15}}

001:123 345 15

002:12 34 15

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值