json_encode 没有把数组转为json

2020-09-15 14:57发布

问题:

做了一个接口对接的数据传输,对方需要的是json数据
但是返回错误

"JSON parse error: Cannot deserialize instance of java.util.ArrayList out of VALUE_STRING token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of java.util.ArrayList out of VALUE_STRING token
at [Source: (PushbackInputStream); line: 1, column: 335] (through reference chain: com.crmsc.ecc.api.oauth2.domain.feign.product.SpuSyncReqVo["product"]->com.crmsc.ecc.api.oauth2.domain.feign.product.Product["thirdSkus"])"

thirdSkus数组里面有一个数组也需要json 这个可以成功
但是thirdSkus不成功 报错。
https://img2020.cnblogs.com/blog/1084044/202009/1084044-20200903171846578-1612164427.png

回答1:

  • 你现在的 thirdSkus 是一个 string 类型,所以不能成功 转换成 数组

办法:

  1. 把 thirdSkus 先转换成对象
  2. 再转换成 json
$data['thirdSkus'] = json_decode($data['thirdSkus']);
json_encode($data); 


回答2:

加了一个[0]就解决了