json.stringify()的妙用,json.stringify()与json.parse()的区别
JSON.stringify()的作用是将 JavaScript 对象转换为 JSON 字符串,而JSON.parse()可以将JSON字符串转为一个对象。简单点说,它们的作用是相对的,我用JSON.stringify()将对象a变成了字符串c,那么我就可以用JSON.parse()将字符串c还原成对象a。
在Ajax中使用时,必须要有传入的类型为 Json 。
传入的形式,主要分为两种,第一种:有实体类与传入的JSON格式对应,那么在Controller层使用的时候,就可以更加的简介。
// 例如添加组的信息。传入的Json类型,与GroupTemp类型是对应的,那么就可以直接使用。
@PostMapping("/insert")
@ResponseBody
public AjaxResponse addDeviceGroup(@RequestBody GroupTemp groupTemp) {
return deviceGroupService.addDeviceGroup(groupTemp);
}
传入的形式,如果没有对应的实体类:主要针对单个Json对象。对应的JSON数组,以后在讨论。
那么对应的服务器端的解析操作如下: 主要是Service层的代码
public static JsonParser parser = new JsonParser(); // 类中定义的JsonParser
public AjaxResponse getGroupInfo(String groupName) {
JsonElement element = parser.parse(groupName); // 把传入的JSON转化为 JsonElement (对应的有这个元素可以是一个Json(JsonObject)、可以是一个数组(JsonArray)、可以是一个Java的基本类型(JsonPrimitive)、当然也可以为null(JsonNull);JsonObject,JsonArray,JsonPrimitive.
if (element.isJsonObject()) {
JsonObject object = element.getAsJsonObject();// 获得JSONObject类
String groupName1 = object.get("groupName").getAsString(); // 根据名字 获取到String类型
DeviceGroup deviceGroup = getDeviceGroupByGroupName(groupName1);
if (deviceGroup == null) {
return new AjaxResponse(-1,"数据库尚未查到此信息");
}
return new AjaxResponse(1, "查询成功", deviceGroup);
}
return new AjaxResponse(-1, "前端传递的Json字符串有误");
}