fastjson-err

ERR#1:syntax error, expect {, actual string, pos 0

com.alibaba.fastjson.JSONException: syntax error, expect {, actual string, pos 0
    at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:228)
    at com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer.parseRest(ASMJavaBeanDeserializer.java:100)
    at Fastjson_ASM_AlarmInfo_3.deserialze(Unknown Source)
    at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:551)
    at com.alibaba.fastjson.JSON.parseObject(JSON.java:250)
    at com.alibaba.fastjson.JSON.parseObject(JSON.java:226)
    at com.alibaba.fastjson.JSON.parseObject(JSON.java:185)
    at com.alibaba.fastjson.JSON.parseObject(JSON.java:303)
    at com.jimi.tracker.data.service.HLPushService$10.deserializer(HLPushService.java:308)
    at com.jimi.tracker.data.service.HLPushService$10.deserializer(HLPushService.java:1)
    at com.jimi.tracker.mq.kafka.KafkaMQConsumer.addListener(KafkaMQConsumer.java:117)
    at com.jimi.tracker.data.service.HLPushService.addAlarmListener(HLPushService.java:280)
    at com.jimi.tracker.data.service.HLPushService$4.run(HLPushService.java:118)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)

出錯代碼
String jsonString = JSON.toJSONString(msg.getMsg());
AlarmInfo alarm=JSON.parseObject(jsonString, AlarmInfo.class);

錯誤原因:
JSON.toJSONString(msg.getMsg()) 該語句中msg.getMsg()不應該傳入一個AlarmInfo對象的json字符串而是一個AlarmInfo的對象。

解決辦法
String jsonString = msg.getMsg();
AlarmInfo alarm=JSON.parseObject(jsonString, AlarmInfo.class);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章