java.lang.String cannot be cast to com.mysql.cj.xdevapi.JsonValue
1.前端如若想传递多个数据信息则可以通过json数组或者json对象的形式传递,过程如下:
前端的对象数组—>在传递时变成json字符串—>通过JSON.parseObject()变成json对象数组—>通过JSONArray.parseArray()变成T对象
前端数组:
let list = []
let app = {}
list.push(a.b)
list.push(a.c)
传递到后端
//json字符串:
//{"list":[{"a":"b"},{"a":"c"}]}
//这里,首先是一个{key:list,value:[]}对象数组,在这个p[]
//body:"{"list":[{"a":"b"},{"a":"c"}]}"
JSONObject jsonObj = JSON.parseObject(body);
//转成T对象
List<T> list = JSONArray.parseArray(jsonObj.getString("list"), T.class);
2.如果数据库里存的是json数组,则前后端处理方式:
数据库存储的形式:
["1","2","3"]
//java处理成java数组、集合
String json = "[\"1\",\"2\",\"3\"]";
//json数组转Java数组
List<String> sealKind = JSON.parseArray(json, String.class);
3.插播一条,写半天这个json怎么用 java打印输出结果:
String json = "[\"1\",\"2\",\"3\"]";
JsonArray jsonArray = Json.fromJson(JsonArray.class, json);
System.out.println(jsonArray.get(0));
//我以为System.out.println(jsonArray)就能打印出结果,但是报错,就是转不了呗(toString也不行)
//java.lang.String cannot be cast to com.mysql.cj.xdevapi.JsonValue
//toArrary行,但是是地址
//输出结果:[Ljava.lang.Object;@384ad17b
//foreach遍历全部了呗,按照key
4.前端处理:
let list = JSON.parse(json)