Scala fastjosn字符串转json异常syntax error, expect {, actual [, pos 0 at

Scala admin 2年前 (2018-11-21) 104次浏览 0个评论 扫描二维码

数据转换的是件比较费事的事情,数据之间相互解析和转换,只想说费时间,今天跟大家分享下,json格式转换成javaBean类报如下错误:

syntax error, expect {, actual [, pos 0 
com.alibaba.fastjson.JSONException: syntax error, expect {, actual [, pos 0

这里可能使用代码:
val json = JSON.parseArray(str)
或者
val json = JSON.parseObject(str)
翻译:语法错误,期望是{,但是是[ ,

{"msgName":"test","msgDate":1542178892098,"jsonBody":{"mqInfoCarrier":[{"buType":"A","areaCode":"51000000"}
]}"}

通俗点说:
就是本来现在转换是json的普通格式{'name':'yan','age':'18'},但是传过来的参数是json的数组或者包含数组的

解决方式:

val t =
  """
    |{
    |"msgName":"test",
    |"msgDate":1542178892098,
    |"jsonBody":
    |{"mqInfoCarrier":[{"buType":"A","areaCode":"51000000"}]}}
  """.stripMargin
val jsonT = JSON.parseObject(t)
val jsonBody = jsonT.getJSONObject("jsonBody")
val mqInfoCarrier = jsonBody.getJSONArray("mqInfoCarrier")
for(i <- 0 to mqInfoCarrier.size()-1){
  println(mqInfoCarrier.getJSONObject(i).getString("areaCode"))
}

由此可以看出

jsonT.getJSONObject("jsonBody")方法做了两步工作:

1、str = jsonT.getString("jsonBody")  
2、val a = JSON.parseObject(str) //JSONObject对象 取值a.getString()

jsonBody.getJSONArray("mqInfoCarrier")

1、Str1 = jsonBody.getString("mqInfoCarrier")  
2、val b = JSON.parseArray(Str1)//JSONArray对象 长度 b.size() 取值 b(0) 

不同的环境下,报错的解决方式会不一样,上面可以作为参考;


codeobj , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Scala fastjosn字符串转json异常syntax error, expect {, actual [, pos 0 at
喜欢 (0)
[a37free@163.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址