GSON 无法解析带有字符串空格的 JSON

2023-12-13

我有以下对象:

public class ParameterWrapper<T> {

    private String type;

    private T value;

    public ParameterWrapper(String type, T value) {
        this.type = type;
        this.value = value;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public T getValue() {
        return value;
    }

    public void setValue(T value) {
        this.value = value;
    }
}

我使用 Gson 库将其序列化为 JSON。什么时候value包含一个没有空格的字符串,它工作得很好。什么时候value包含一个带空格的字符串,我看到以下异常:

com.google.gson.JsonSyntaxException:com.google.gson.stream.MalformedJsonException:第1行第28列未终止的对象

对于以下 JSON:

{"Plaintext":{"type":"String","value":"hello there"},"Key":{"type":"Number","value":"1"},"SINGLE_FUNCTION":{"value":"1-0"}}

但是,具有以下内容:

{"Plaintext":{"type":"String","value":"hellothere"},"Key":{"type":"Number","value":"1"},"SINGLE_FUNCTION":{"value":"1-0"}}

JSON 解析成功。这是一个已知的问题?我已经通过验证器运行了 JSON,效果非常好。

Edit:

这个问题的含糊之处并没有被忽视。我希望这是一个现有的问题。该应用程序非常庞大,这就是为什么很难找出一个小的、可编译的示例,但我会尽力而为!

好的。首先,以下 JSON 发送到我的控制器:

@RequestMapping("/update-state")
public
@ResponseBody
String updateState(@RequestParam(value = "algorithmId") String algorithmId,
                   @RequestParam(value = "state") String state) throws InvalidParameterException {

    Algorithm algorithm = algorithmService.getAlgorithmById(Integer.parseInt(algorithmId));
    algorithm.execute(executorService.parseAlgorithmState(state));

    return gsonBuilder.toJson(algorithm.getState().getParameterMap());
}

致电至parseAlgorithmState(state),它向下移动到这个方法:

@Override
public AlgorithmState parseAlgorithmState(String json) throws InvalidParameterException {
    Gson gson = new Gson();
    Map keyValueMap = (Map) gson.fromJson(json.trim(), Object.class);
    ...

线路Map keyValueMap = (Map) gson.fromJson(json.trim(), Object.class);是异常最初发生的地方。


我刚刚遇到了同样的问题。问题在于该字符是不间断空格 char(160)。如果您使用 POSTMAN 将其粘贴到请求正文中,您将可以直观地看到这些字符(它们看起来像灰点)。 Gson不喜欢他们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GSON 无法解析带有字符串空格的 JSON 的相关文章

  • 将 4 个字节转换为无符号 32 位整数并将其存储在 long 中

    我正在尝试用 Java 读取二进制文件 我需要读取无符号 8 位值 无符号 16 位值和无符号 32 位值的方法 执行此操作的最佳 最快 最美观的代码 是什么 我在 C 中做到了这一点 并做了类似的事情 uint8 t buffer uin
  • Spring MVC 应用程序可以是多线程的,即使它的 servlet 不是吗?

    当您谈论 Spring 应用程序是多线程时 您是否一定是指该应用程序中定义的 servlet 是否是多线程的 或者即使应用程序中的 servlet 不是多线程 Spring 应用程序也可以配置为多线程吗 不再支持单线程 servlet 它们
  • 在 Postgres 中为特定查询设置 work_mem

    我正在使用一个委托给 JDBC 驱动程序的库PostgreSQL 而且有些查询非常复杂 需要更多内存 我不想设置work mem对于所有查询来说都是大的 只是这个子集 问题是执行以下代码会导致错误 pseudo code for what
  • 为什么从 Eclipse 导出的可运行 JAR 不起作用?

    我有一个在 Eclipse 中运行良好的项目 但是 当我将其导出到可运行的 JAR 其中包含依赖项 时 它不会运行 从控制台运行 JAR 时出现的错误是 编辑 之前没有使用 jar 运行它 INFO Loading XML bean def
  • 无法使用 Python 循环分页 API 响应

    所以 我对这个感到摸不着头脑 使用 HubSpot 的 API 我需要获取我客户的 门户 帐户 中所有公司的列表 遗憾的是 标准 API 调用一次只能返回 100 家公司 当它返回响应时 它包含两个参数 使分页响应成为可能 其中之一是 ha
  • 使用 ActiveModel::Serializers 包含两个父 json 数组

    我正在尝试发送如下所示的前端应用程序 json facilities id 5 name happy days ranch location address 1424 Pastoral Lane zipcode 25245 instruct
  • 如何将选定的项目移动到列表顶部

    List
  • 椭圆与椭圆如何相交?

    我用的是JAVA Ellipse2D s1 new Ellipse2D Float 0 0 100 100 System out println s1 intersects 99 30 100 100 应该返回 false 但它返回 tru
  • 如何跨工作区保存 E​​clipse 启动配置文件?

    当我复制 Eclipse 项目目录时 它包含 classpath 和 project 文件 这样当我将同一目录带到另一个 Eclipse 实例时 我不必设置我的构建路径等 假设所有资源都包含在在项目中 而不是外部 但是 此过程不会导致启动配
  • Java 会话变量

    我听说有些人认为在会话中将信息存储在服务器上是一个坏主意 因为它不安全 因此 在多页面业务流程功能中 应用程序将数据写入数据库 然后在需要时检索信息 在会话中存储私人信息是否一定不安全 只要会话本身安全 在会话中存储属性就不存在安全风险劫持
  • 如何更改使用 Google ReCaptcha 版本 2 时的错误消息?

    当为 Google ReCaptcha 版本 2 选择多张照片时 会显示以下错误消息 需要多个正确的解决方案 请解决更多 如何将错误消息更改为我网站上的自定义消息 这是图像 我认为不可能在服务器端 在谷歌 进行 这可以在客户端通过利用 js
  • 解析JSON数据并将其放入gridview中

    我正在开发一个应用程序 我必须在其中解析JSON数据并且必须将它们放入自定义中gridview 它应该是这样的 到目前为止 我已经在 asynctask 中解析了 JSON 数据并获取了这些值 这是我的代码 private class ge
  • java代码的等效vb代码

    谁能告诉我这段Java代码到底做了什么 SecureRandom random SecureRandom getInstance SHA1PRNG byte bytes new byte 20 synchronized random ran
  • 将带有 md5 消息摘要和 DESede/CBC/PKCS5Padding 的 3DES 加密的 java 代码转换为 python

    我有这个工作java代码 它使用3DES加密对密码进行加密 import java security MessageDigest import java util Arrays import java util Base64 import
  • Maven 依赖冲突:org.w3c.dom.ElementTraversal

    我有一个 Java 代码库 它使用 Maven 进行依赖项解析并在 CI 上运行测试 经过最近的一批开发 大到足以很难识别重大更改 我的一些测试现在在通过 Maven 运行时失败了NoClassDefFoundError for org w
  • 公交车公共交通算法

    我正在开发一个可以查找公交路线的离线 C 应用程序 我可以提取时间表 巴士 路线数据 我正在寻找适用于基本数据的最简单的解决方案 可以使用什么算法来查找从巴士站 A 到巴士站 B 的路线 是否有适用于 C Java 的开源解决方案 数据库的
  • Spring 4 MVC 和 Websockets - 没有合适的默认 RequestUpgradeStrategy

    我需要 Websockets 在我的应用程序中进行实时更新 所以我找到了这个例子并一步一步地做到了here http raymondhlee wordpress com 2014 01 19 using spring 4 websocket
  • 嵌套异常是java.lang.NoClassDefFoundError:无法初始化类org.springframework.jdbc.support.SQLErrorCodesFactory

    我正在使用 spring 和 jdbctemplate 编写一个应用程序 但是我遇到了以下错误 org springframework web util NestedServletException Handler processing f
  • 访问 JAR 资源

    我有一个jar包含我想要分发的资源 主要是缓存 日志记录等配置 的文件 我对这些资源的相对路径有问题 所以我做了我在另一个 stackoverflow 问题中发现的问题 该问题说这是一种有效的方法 ClassInTheSamePackage
  • Mac 上的 JavaFX WebView 字体问题

    有些网站显示乱码而不是正确的文本 它只发生在 Mac 上 For example with GMapsFX 可能与 OS X 10 11 或 10 12 有关 我用Java 1 8 0 121测试了它 此问题有任何修复或解决方法吗 就我而言

随机推荐

  • zend 与 select 的关系

    我是 zend 的新手 我被要求重新开发一个曾经用纯 PHP 编写的网站并将其放入 zend 框架中 我在数据库关系方面遇到很多麻烦 我似乎无法专心定义和查询关系 我想找一个类别 从该类别中 我希望能够找到与其关联的所有类别信息 并能够查询
  • 是否可以使用Python的requests库设置代理链?

    标准情况如下 公司的安全策略要求所有员工使用公司的代理服务器 需要授权 来获取任何 https 资源 为了通过 Python 解释器成功使用任何互联网连接 我必须手动 set HTTP PROXY http
  • 价格 woocommerce 中的小数分隔符

    Hi everyone I have this configuration in my woocommerce And in my product I have this 但当我显示价格时 它返回 4 95 而不是 4 95 我用这个来获取
  • 在 Hibernate 中混合 HQL 和 Criteria API

    是否可以混合使用 HQL 和 Criteria API 我有一个String包含 HQL 中的 where 条件和Criteria它已经建成并从其他地方获得 我想知道是否可以添加where条件String to Criteria add w
  • 使用 Spring CloudVault 时应用程序初始化时出现禁止错误

    使用 Spring Cloud HOXTON SR6 和 Spring boot 2 3 2 启动服务时 尝试访问 secret application 和 secret application profile 时出现 403 错误 这些路
  • 按自定义顺序对字符串数组进行排序

    我想按照我提到的顺序对字符串数组中的一组固定字符串进行排序 例如 文本文件 图像文件 音频文件 视频文件 应用程序文件 其他文件 示例1 如果我的字符串数组输入是这样的 inputval 0 Other files inputval 1 I
  • 用于获取 JavaFX WebView 控制台事件的公共 API 是什么?

    我想记录 WebView 控制台事件 他们有时会发现所使用的底层浏览器中的怪癖 并可以帮助排除故障 可以使用 Sun 实现类与 WebView 控制台交互 import WebConsoleListener setDefaultListen
  • 将方法指针从 C# 传递到 Delphi DLL

    我在将字符串作为 PChar 传递到 Delphi 构建的 DLL 时遇到了一些问题 感谢 Jens M hlenhoff 解决了它 现在我有另一个问题 如果 Delphi 声明是常规类型过程 则在传递给 DLL 时我已成功回调 c 方法
  • 将 razor 视图渲染为字符串而不修改 html

    我之前找到过有关如何将 MVC 4 视图渲染为字符串的答案 但是 我开始使用视觉工作室2013而现在的结果并不如预期 见下文 lt A gt lt B gt lt C gt class panel lt D gt gt lt E gt cl
  • MongoDB 和类验证器唯一验证 - NESTJS

    TL DR 我正在尝试在我的验证器中运行猫鼬查询 您好 我正在尝试制作一个自定义装饰器 如果该字段的值已存在 它会抛出错误 我正在尝试在验证路线的类中使用猫鼬模型 与解析器 控制器不同 InjectModel 不适用于验证器类 我的验证器是
  • 使用 jquery ui 模式对话框提交表单

    提交表单时 我在使用 JQuery UI 模态对话框时遇到困难 目的是您点击提交按钮 模式弹出窗口 根据您在模式中的选择 表单要么提交 要么不提交 相反 模式会弹出并自动提交 前端 div title Basic dialog p Plea
  • 如何将 JavaScript 对象编码为 JSON?

    有没有一种将 JavaScript 对象编码为 JSON 的好方法 我有一个键值对列表 其中名称来自复选框 并且值根据该框是否被选中而为 true 或 false var values checks checkbox each functi
  • 在颜色空间中的scale_fill/color中粘贴名称不能循环工作

    使用时缩放填充连续发散 from colorspace里面一个for loop or function不粘贴name图例标题并通过错误 如下例所示 library ggplot2 library colorspace set seed 10
  • 尝试用 JPanel 画线

    我正在尝试使用画线JPanel我已经碰壁了 我可以将两侧朝下 但是一旦涉及到从 x 线中减去 一切都会出错 package GUIstuff import java awt Graphics import javax swing JPane
  • 为什么无符号n位整数的最大值是2ⁿ-1而不是2ⁿ?

    The maximum value of an n bit integer is 2n 1 Why do we have the minus 1 Why isn t the maximum just 2n The 1因为整数是从0开始的 但
  • 如何在 C++ 端获取 QQuickItem 的有效实例

    好吧 我进行了很多搜索 但还没有找到好的解决方案 我是新来的Qt 我有一堂课是QQuickItem像这样 class MyQuickItemClass public QQuickItem Q OBJECT SetInfo SomeCppCl
  • 如何使用 SQL 查找缺失的数据行?

    我的问题 我有一个MySQL数据库 它按时间顺序存储大量气象数据 每10分钟插入一次新数据 不幸的是 已经发生了几次停电 因此某些行丢失了 我最近设法从气象站获取了某些备份文件 现在我想用它们来填充丢失的数据 DB 的结构如下 示例 dat
  • 使用 string.Replace 来匹配整个单词

    我正在使用 NET 2 0 和 WinForms 目前 我需要一段代码来将给定文本中的一个字符串替换为另一个字符串 但在文本中它应该只查找整个单词 我的意思是 string name COUNTER 40 CLOCK COUNTER 60
  • 在 DNN 训练和输入的偏导数结束时返回逆 Hessian 矩阵

    使用 Keras 和 Tensorflow 作为后端 我构建了一个 DNN 它以恒星光谱作为输入 7213 个数据点 并输出三个恒星参数 温度 重力和金属丰度 该网络在我的测试集上训练良好并预测良好 但为了使结果在科学上有用 我需要能够估计
  • GSON 无法解析带有字符串空格的 JSON

    我有以下对象 public class ParameterWrapper