java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 2 path $

package com.example.core.mydemo.scooterOrderSms;

import com.alibaba.fastjson.JSON;
import com.example.core.mydemo.json2.GsonUtils;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.apache.commons.lang3.StringUtils; public class JSONTest {
private static final Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create(); public static <T> T convertObj(String json, Class<T> cls) {
if (StringUtils.isBlank(json)) {
return null;
}
return gson.fromJson(json, cls);
} public static void main(String[] args) {
TemplateCodeSmsMq mq1 = new TemplateCodeSmsMq();
mq1.setMobile("137XXXX1198");
mq1.setTemplateCode("myTemplateId001");
System.out.println("mq=" + JSON.toJSONString(mq1)); //java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 2 path $
//Expected BEGIN_OBJECT but was STRING at line 1 column 2 path $
//" Expected BEGIN_OBJECT but was STRING at line 1 column 2 path $
String messageBody = "\"{\"mobile\":\"137XXXX1198\",\"params\":{\"expireDate\":\"2023-12-28\",\"plateNum\":\"测RGU269\",\"reportDateTime\":\"2023年11月28日\",\"url\":\"https://www.url.test\"},\"templateCode\":\"myTemplateId001\"}\""; System.out.println("messageBody=" + messageBody);
TemplateCodeSmsMq mq = null;
try{
mq = GsonUtils.convertObj(messageBody, TemplateCodeSmsMq.class);
System.out.println("mq=" + mq.toString());
}catch (Exception e) {
e.printStackTrace();
} //转换之后
if(messageBody.startsWith("\"") && messageBody.endsWith("\"")){
messageBody = messageBody.substring(1,messageBody.length() - 1).replace("\\","");
}
System.out.println("messageBody22=" + messageBody); mq = GsonUtils.convertObj(messageBody, TemplateCodeSmsMq.class); System.out.println("mq=" + mq.toString());
}
}
import java.util.Map;

public class TemplateCodeSmsMq {

    private String mobile;

    private String templateCode;

    private Map<String,Object> params;

    @Override
public String toString() {
return "TemplateCodeSmsMq{" +
"mobile='" + mobile + '\'' +
", templateCode='" + templateCode + '\'' +
", params=" + params +
'}';
} public String getMobile() {
return mobile;
} public void setMobile(String mobile) {
this.mobile = mobile;
} public String getTemplateCode() {
return templateCode;
} public void setTemplateCode(String templateCode) {
this.templateCode = templateCode;
} public Map<String, Object> getParams() {
return params;
} public void setParams(Map<String, Object> params) {
this.params = params;
}
}

java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 2 path $的更多相关文章

  1. android报错 Expected BEGIN_OBJECT but was STRING at line 1 column 39 path $

    我在使用retrofit和Gson配合时,出现了这个问题,疑惑中乱七八糟瞎搞了一个下午没有解决.期间怀疑Gson解析不能使用泛型(因为我的解析使用了泛型),后来又觉得可能是我的关键字正好是解析器的某个 ...

  2. gson Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path

    返回数据解析错误 com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT ...

  3. Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path 解决办法

    返回数据解析错误 com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT ...

  4. Caused by: java.lang.IllegalStateException: Expected raw type form of org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$Match

    spring 4.0.2,mybatis 3.2.6,aspectjweaver 1.8.10 使用的时候,报错: Caused by: java.lang.IllegalStateException ...

  5. Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2

    原因是解析的时候多了,逗号,或是 \ 解决方法:一 revJson=revJson.replace("\\", "");//去掉'/' revJson=revJ ...

  6. Spring Scheduled定时任务报错 java.lang.IllegalStateException: Encountered invalid @Scheduled method 'xxx': For input string: "2S"

    报错信息如下: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ding ...

  7. java.lang.IllegalStateException: 1 matchers expected, 5 recorded.

    这是一个很神奇的错误. 常规的出错是因为在mock方法里,其中某一个或者几个参数使用了EasyMock.anyxx(),而其他的使用了具体的值. java.lang.IllegalStateExcep ...

  8. [Android]ListFragment.setEmptyText() 抛 java.lang.IllegalStateException

    在ListFragment子类中直接调用setEmptyText(getString(R.string.msg_no_invited_parties)), 抛java.lang.IllegalStat ...

  9. 关于java.lang.IllegalStateException

    今天调试程序时遇到了java.lang.IllegalStateException org.apache.catalina.connector.ResponseFacade.sendRedirect( ...

  10. struts2 下载时报java.lang.IllegalStateException

    -----------------------------------------struts2 下载时报java.lang.IllegalStateException---------------- ...

随机推荐

  1. 性能提升3倍、时延降低70%,阿里云企业级存储ESSD云盘再升级!

    9月22日,阿里云存储年度新品发布会上,阿里云基础产品资深产品总监陈起鲲发布了其全球领先的旗舰级块存储产品ESSD的两款新规格(ESSD Auto PL.ESSD PL-X),并宣布了新增的多项企业级 ...

  2. 庖丁解牛-图解MySQL 8.0优化器查询解析篇

    ​简介: SQL优化器本质上是一种高度抽象化的数据接口的实现,经过该设计,客户可以使用更通用且易于理解的SQL语言,对数据进行操作和处理,而不需要关注和抽象自己的数据接口,极大地解放了客户的应用程序. ...

  3. 用python编写向通信产品发送AT指令的程序实例

    一.安装pyserial包pip install pyserial 二.实例代码 # -*- coding: utf-8 -*- import time import hashlib from ser ...

  4. dotnet 在 UOS 统信系统上运行 UNO 程序输入时闪烁黑屏问题

    本文记录我在虚拟机内安装了 UOS 统信系统,运行 UNO 的基于 Skia 的 Gtk 应用程序时,在输入的过程中不断窗口闪黑问题 本质上说这个问题和 UNO 毫无关系,这是一个 OpenGL 硬件 ...

  5. IIncrementalGenerator 判断程序集之间可见关系

    本文告诉大家如何在使用 IIncrementalGenerator 进行增量的 Source Generator 生成代码时,如何判断两个程序集之间是否存在 InternalsVisibleTo 关系 ...

  6. Headless BI

    Headless的概念最初的来源与内容管理平台有关,一般是指内容管理平台中的一些应用不提供可视化界面,只是通过API方式把内容以数据的方式给前端.前端根据不同的设备类型,可以再去进行针对性地渲染和展现 ...

  7. Android项目自动生成uml图(以小米便签为例)

    摘要 最近在学习软件工程,需要完成小米便签的精读,任务中需要详细类图,由于项目巨大,手动画图打咩,试了一下午的android studio,试了诸如code iris,SequenceDigram(只 ...

  8. Plumed分子模拟后分析

    技术背景 在前面的几篇博客中,我们分别介绍过Histogram算法的使用.Plumed安装与简单使用.Plumed一般就是两种用法:要么在运行分子动力学模拟的过程中实时的对接,要么就是把分子模拟的相关 ...

  9. ITIL是标准吗?

    ITIL不是标准 OGC:是一个推荐的管理框架,一个模版,可根据运维实践自由裁量落地 itil诞生环境:欧美思维.欧美文化.欧美制度.欧美人文习惯.... 对欧美来说可能是最佳实践,但是对中国特色文化 ...

  10. 03. go-zero简介及如何学go-zero

    目录 一.go-zero简介及如何学go-zero 1.go-zero官方文档 2.go-zero微服务框架入门教程 3.go-zero最佳实践 4.学习资料 二.go-zero环境搭建 1.GO环境 ...