【问题标题】:Why I am getting "The method stringToValue(String) is undefined for the type JSONObject" in Spring Boot为什么我在 Spring Boot 中收到“JSONObject 类型的方法 stringToValue(String) 未定义”
【发布时间】:2021-04-06 11:11:33
【问题描述】:

我正在尝试使用以下代码转换消息:

String message = (String) JSONObject.stringToValue(record.value().toString());

使用 springboot 版本为 2.4.4 时出现以下错误,但在以下版本中运行良好。

Error = The method stringToValue(String) is undefined for the type JSONObject

下面是用于上述转换的maven依赖:

       <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20180813</version>
        </dependency>

有人可以就此提出建议吗?

【问题讨论】:

  • 在发生错误的情况下,您确定JSONObject来自org.json吗?
  • 是的@GauthamM .. 这是导入 - 导入 o​​rg.json.JSONObject;

标签: java json spring-boot


【解决方案1】:

我建议改用 gson。在 gson 中转换为字符串更容易

<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.8.6</version>
</dependency>

从 Json 中以字符串形式检索值的代码

record.get("id").getAsString()

【讨论】:

  • 您的建议不符合我的要求。 @Tapan
【解决方案2】:

首先,如果您要转换的内容已经是字符串,则无需调用stringToValue

但是要回答您的问题,您应该将鼠标放在代码中的名称 JSONObject 上,然后让 Eclipse 使用 ctrl+click 将您带到它的定义。在那里,你会看到这个类的来源。记下该文件(很可能是一个 jar 文件),您会发现它不是您期望的文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-19
    • 2015-04-23
    • 2018-09-18
    • 1970-01-01
    • 2017-01-17
    • 1970-01-01
    • 2017-12-21
    相关资源
    最近更新 更多