gpt4 book ai didi

java - 将 HOCON 字符串转换为 Java 对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:59:40 32 4
gpt4 key购买 nike

我的一个网络服务返回以下 Java 字符串:

[
{
id=5d93532e77490b00013d8862,
app=null,
manufacturer=pearsonEducation,
bookUid=bookIsbn,
model=2019,
firmware=[1.0],
bookName=devotional,
accountLinking=mandatory
}
]

我有上述字符串的等效 Java 对象。我想将上述 java 字符串类型转换或转换为 Java 对象。

我无法对其进行类型转换,因为它是一个字符串,而不是一个对象。所以,我试图将 Java 字符串转换为 JSON 字符串,然后我可以将该字符串写入 Java 对象,但没有运气得到 invalid character "=" 异常。

Can you change the web service to return JSON?

那是不可能的。他们没有改变他们的契约(Contract)。如果他们返回 JSON,那将非常容易。

最佳答案

您的网络服务返回的格式有自己的名称 HOCON。 (您可以阅读更多相关信息 here )

不需要自定义解析器。不要试图重新发明轮子。请改用现有的。


将此 Maven 依赖项添加到您的项目中:

<dependency>
<groupId>com.typesafe</groupId>
<artifactId>config</artifactId>
<version>1.3.0</version>
</dependency>

然后按如下方式解析响应:

Config config = ConfigFactory.parseString(text);

String id = config.getString("id");
Long model = config.getLong("model");

还有一个选项可以将整个字符串解析为 POJO:

MyResponsePojo response = ConfigBeanFactory.create(config, MyResponsePojo.class);

不幸的是,这个解析器不允许 null 值。因此,您需要处理 com.typesafe.config.ConfigException.Null 类型的异常。


另一种选择是将 HOCON 字符串转换为 JSON:

String hoconString = "...";
String jsonString = ConfigFactory.parseString(hoconString)
.root()
.render(ConfigRenderOptions.concise());

然后您可以使用任何 JSON 到 POJO 的映射器。

关于java - 将 HOCON 字符串转换为 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58288713/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com