java - 如何将responseEntity映射到java中的自定义类
Posted
技术标签:
【中文标题】java - 如何将responseEntity映射到java中的自定义类【英文标题】:How can I map responseEntity to custom class in java 【发布时间】:2022-01-21 13:09:40 【问题描述】:我有一个服务返回一个类似这样的列表作为 responseEntity
00080005=vr=CS, Value=[ISO_IR 100],
00080054=vr=AE, Value=[DCM4CHEE],
00080056=vr=CS, Value=[ONLINE]
我怎样才能创建一个映射这个的自定义类,这种方式更好还是使用 responseEntity ?
--注意我在使用responseEnttiy的时候有个错误说
Can not deserialize instance of javax.json.Json out of START_ARRAY token
【问题讨论】:
您显示的代码看起来根本不像 JSON。属性将是"key": "value"
,您似乎使用=
并且不引用密钥。
是json+dicom,response把Content-Type设为json+dicom
我不知道那种格式,但是快速的 Google 搜索显示 this page 并且那里的示例看起来与您发布的完全不同。我的怀疑是您已经将它(可能通过某些框架自动解析)解析为一些域对象,而您在上面发布的是这些域对象的 toString()
输出。再说一遍:您发布的 不是 JSON。
好的,其实我现在是手动解析的,不过我看看这个链接,谢谢
【参考方案1】:
您的服务以 JSON 格式返回?
我在开发一些项目时也遇到了类似的情况...但我不太确定您的服务返回是 json 格式..
我使用 Jackson 作为映射器,使用 Gson Library 作为 jsonobject。我使用杰克逊将每个请求映射到实体。
JsonObject gson = new Gson().fromJson(stringJson, JsonObject.class);
//--YA--Menggunakan ObjectMapper untuk convert string json ke entity
ObjectMapper mapper = new ObjectMapper();
Token token = new Token();
//--YA-- setting jackson untuk bypass error jika terdapat body yg tidak bisa di map
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
//--YA-- setting jackson untuk abaikan case sensitive
mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
token = mapper.readValue(gson.toString(), Token.class);
【讨论】:
以上是关于java - 如何将responseEntity映射到java中的自定义类的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot:测试包含 Java 时间的 ResponseEntity