关于json互转

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)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值