相信在Java开发的过程中 小伙伴一定遇到不少 JSON转换的问题吧!例如在对接的过程中,小伙伴给你专递的结构体是JSON,而你需要转为实体类。
1、对象转JSON 一般用在日志输出
JSONObject.toJSONString(Pojo)
未转换的实体对象打印
log.info("mapDots:{}", mapDots)
mapDots:[MapDot(dotId=0, mapId=null, dotNum=null, name=Name0, centerX=null, centerY=null, centerZ=null, upHeight=null, avoidType=null, dotType=null, isDisable=null, isDeleted=null, isLocked=null, radius=null, gmtCreate=null, gmtModified=null), MapDot(dotId=1, mapId=null, dotNum=null, name=Name1, centerX=null, centerY=null, centerZ=null, upHeight=null, avoidType=null, dotType=null, isDisable=null, isDeleted=null, isLocked=null, radius=null, gmtCreate=null, gmtModified=null), MapDot(dotId=2, mapId=null, dotNum=null, name=Name2, centerX=null, centerY=null, centerZ=null, upHeight=null, avoidType=null, dotType=null, isDisable=null, isDeleted=null, isLocked=null, radius=null, gmtCreate=null, gmtModified=null)]
转换的实体类对象打印
log.info("mapDotsToJSON:{}", JSONObject.toJSONString(mapDots));
mapDots:[{"dotId":0,"name":"Name0"},{"dotId":1,"name":"Name1"},{"dotId":2,"name":"Name2"}]
2、JSON转对象
[
{
"dotId": 1,
"name": "Name0","age": 18
}
]
2.1 JSON转单对象
2.1.1只获取对象的个别属性 举例:获取 dotId
Integer dotId = JSONObject.parseObject(oneMapDot, MapDot.class).getDotId();
Integer dotId1 = JSON.parseObject(oneMapDot, MapDot.class).getDotId();
2.1.2 转为单对象
// 方法1
MapDot mapDot = JSONObject.parseObject(oneMapDot, MapDot.class);
// 方法2
MapDot mapDot1 = JSON.parseObject(oneMapDot, MapDot.class);
2.2 JSON对象转List<Pojo>
{
"id":"1",
"username":"admin",
"data": [{
"id": "1",
"name": "小米手机",
"price": "1800"
},{
"id": "2",
"name": "菠萝手机",
"price": "300"
},{
"id": "3",
"name": "苹果",
"price": "4800"
}
]
}
// JSONObject
List<MapDot> mapDots1 =
JSONObject.parseArray(responeResult.getData().toString(), MapDot.class);