概括
近日准备学习json数据的解析,发现不怎么会用json数据的处理,今天就系统学习一点json处理转换格式的学习。
1.0 直接参数方式
参数传递到后端
{
"id":"1",
"username":"admin"
}
直接进行解析parseObject()可以转换为各种数据格式!!!
JSONObject jsonObject = JSON.parseObject(StrJson);
Integer id = jsonObject.getInteger("id");
String username = jsonObject.getString("username");
logger.info("接收到前台发送的数据id->{} username - >{}",id,username);
同时也能转换为对应pojo类,第二个参数是通过反射进行创建。
代码实现如下:转化为User对象,通过反射。
User user = JSON.parseObject(StrJson, User.class);
logger.info("接收user{}",user);
2.0 多级嵌套或者在data中
{
"id":"1",
"username":"admin"
"data": {
"id": "1",
"name": "小米手机",
"price": "1800"
}
}
解析获取,同理也可以转化为pojo。
JSONObject jsonObject = JSON.parseObject(StrJson);
String string = JSON.parseObject(jsonObject.getString("data")).getString("id");
3.0 json转换为集合
前台传入参数:
{
"id":"1",
"username":"admin",
"data": [{
"id": "1",
"name": "小米手机",
"price": "1800"
},{
"id": "2",
"name": "菠萝手机",
"price": "300"
},{
"id": "3",
"name": "苹果",
"price": "4800"
}
]
}
JSONObject json = JSON.parseObject(StrJson);
JSONArray jsonArray = json.getJSONArray("data");
List<Goods> goodsList = JSONObject.parseArray(jsonArray.toJSONString(), Goods.class);