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. Apache Hudi 在 B 站构建实时数据湖的实践

    ​简介: B 站选择 Flink + Hudi 的数据湖技术方案,以及针对其做出的优化. 本文作者喻兆靖,介绍了为什么 B 站选择 Flink + Hudi 的数据湖技术方案,以及针对其做出的优化.主 ...

  2. LlamaIndex 安装与配置(不含OpenAI)

    pip install llama-index 这是一个包含以下组件的启动包: llama-index-core llama-index-legacy (暂时包含) llama-index-llms- ...

  3. [Kali] Kali Linux 环境准备

      虚拟机和系统: Mac 的 Vmware Fusion:https://www.vmware.com/cn/products/fusion/fusion-evaluation.html  序列号去 ...

  4. [Caddy2] Caddyfile 指令

    以下是 Caddyfile 的标准指令. acme_server An embedded ACME server basicauth Enforces HTTP Basic Authenticatio ...

  5. 云原生最佳实践系列 7:基于 OSS Object FC 实现非结构化文件实时处理

    01 方案概述 现在绝大多数客户都有很多非结构化的数据存在 OSS 中,以图片,视频,音频居多.举一个图片处理的场景,现在各种终端种类繁多,不同的终端对图片的格式.分辨率要求也不同,所以一张图片往往会 ...

  6. Competition Set - 模拟赛 I

    HNOI2017 Day2 2023-06-10 注:Day2T2换为BJOI2017Day2T1,以匹配学习进度 A.大佬 B.抛硬币 C.喷式水战改 A 大佬 你需要用 \(n\) 天挑战一名大佬 ...

  7. 【VMware vCenter】连接和使用vCenter Server嵌入式vPostgres数据库。

    vCenter Server 早期支持内嵌(embedded)和外部(external)数据库,内嵌数据库就是vPostgres,基于VMware Postgres数据库(PostgreSQL数据库) ...

  8. 面向K-12学生的远程访问学校计算机实验室

    ​ 为了应对新冠肺炎大流行,许多学校被迫采用远程学习和混合时间制度.在家学习的学生必须使用自己的个人设备或学校提供的设备(例如 Chromebook )来完成课堂作业. 尽管许多解决方案可以帮助学生和 ...

  9. 密码学—仿射密码Python程序

    文章目录 仿射密码 加密算法 解密算法 仿射密码 古典密码,且属于单表加密. 加密算法 仿射密码公式 c = m×k + b mod 26 c是密文,m是明文,m作为26字母中的明文,因此计算出来的密 ...

  10. C语言:++ --优先级的深入理解

    #include <stdio.h> int main() { int num = 11; int result = ++num > 11 && --num < ...