比方说,我有一流的A公共领域x和y.让我们说我有另一个pojo类,B但它使用setter和getter,所以它有setX()和setY().
我想使用一些自动方式从实例复制A到B后端.
至少使用默认设置,Dozer's
Mapper mapper = new DozerBeanMapper();
B b = mapper.map(a, B.class);
Run Code Online (Sandbox Code Playgroud)
不会正确复制字段.
那么是否有一个简单的配置更改,允许我使用Dozer或其他库来完成上述操作?
我只是想找到一种方法将 json 响应(来自 REST API)转换为 POJO(在 android 中使用),以便我可以将接收到的数据使用到我的应用程序中,因为使用 Map 将不足以作为我的数据m 接收有点复杂,包含 3 个级别的数组(数组内的数组内的数组)。
我正在使用 Dio 库进行 api 调用,我可以成功进行 API 调用并在控制台上打印数据,完全没有问题。任何人都可以帮助我实现这一目标吗?
以下是我得到的回应。
{
"status": 200,
"message": "success",
"data": [
{
"menu": {
"megamenu_id": "55",
"language_id": "1",
"title": "Mobiles",
"description": "",
"submenu": [
{
"0": {
"info": {
"megamenu_id": "67",
"language_id": "1",
"title": "Mobile Phones",
"description": ""
}
},
"subsubmenu": [
{
"infosub": {
"megamenu_id": "68",
"language_id": "1",
"title": "Android Phones",
"description": ""
}
},
{
"infosub": {
"megamenu_id": "69",
"language_id": "1", …Run Code Online (Sandbox Code Playgroud) 嘿,我也有问题,这是我的 Json
[
{
"aimid": "12345"
},
{
"aimid": "333674"
},
{
"aimid": [
"4568999",
"6789345"
]
}]
Run Code Online (Sandbox Code Playgroud)
这是我的 Pojo 课:-
@JsonProperty("aimid")
private String aimid;
public String getAimid() {
return aimid;
}
public void setAimid(String aimid) {
this.aimid = aimid;
}
Run Code Online (Sandbox Code Playgroud)
我想将 aimid 存储在 pojo 中。当我在我的应用程序中像上面那样写时,我收到错误。
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.String` out of START_ARRAY token.
Run Code Online (Sandbox Code Playgroud)
根据我的理解,由于 Array 元素,我遇到了错误,所以任何人都可以建议我如何捕获这两个东西,如果它是作为字符串来的,或者它是作为一个数组字符串来的
根据jersey规范,我们可以使用jersey-media-json-jackson序列化/反序列化json/pojo,但是从StackOverflow中的某个线程,我们也可以使用jackson-jaxrs-json-provider 2.2.3
你能告诉我们应该使用哪一个?
谢谢,
我刚刚开始使用 jsonschema 和https://github.com/joelittlejohn/jsonschema2pojo/wiki/Getting-Started 中“在 Java 项目中使用 jsonschema2pojo(嵌入式)”下的示例
考虑到此处列出的 jsonschema 数据类型 https://developers.google.com/discovery/v1/type-format?hl=en
我的架构对象可以描述为
{
"$schema": "http://json-schema.org/draft-04/schema",
"description": "Document",
"type": "object",
"properties": {
"displayDate": { "type": "date" },
"displayName": { "type": "string" }
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,生成的 Pojo 对象将是
package com.example;
public interface Document {
java.lang.Object getDisplayDate();
void setDisplayDate(java.lang.Object arg0);
java.lang.String getDisplayName();
void setDisplayName(java.lang.String arg0);
}
Run Code Online (Sandbox Code Playgroud)
有一个对象类型的成员“displayDate”,而不是预期的日期。为什么?
我必须发出一个 SOAP POST 请求,如下所示
POST /sample/demo.asmx HTTP/1.1
Host: www.website.org
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "https://www.website.org/Method"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Method xmlns="https://www.ourvmc.org/">
<item1>string</item1>
<item2>string</item2>
<item3>string</item3>
<item4>string</item4>
</Method>
</soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)
我已经达到
POST /sample/demo.asmx HTTP/1.1
Host: www.website.org
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "https://www.website.org/Method"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Method xmlns="http://tempuri.org/"/>
</soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)
我有一个名为 Method 和 getter setter 的 POJO 类,用于所有 item1、item2、item3、item4。我需要将该 POJO 转换为 xml 格式
<item1>string</item1>
<item2>string</item2>
<item3>string</item3>
<item4>string</item4>
Run Code Online (Sandbox Code Playgroud)
然后发布它。任何人都可以建议怎么做吗?我已经研究过,但没有找到任何有用的解决方案。
我使用默认的 HttpUrlConnection 类进行 api 调用,使用GSON将 Java 对象转换为 json 请求,将 json 响应转换为等效的 Java 对象。我创建了各种模型(pojo 类)来将请求/响应转换为模型对象。我的疑问是由于 GSON 是序列化/反序列化库,因此对所有这些模型实现 Serializable 是否理想?
public class Contact implements Serializable {
private String name;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Run Code Online (Sandbox Code Playgroud)
我从所有模型中删除了可序列化的工具,一切似乎都运行良好。但我很困惑它是否正确?
我使用 Google Room 持久性库将数据保存在数据库中。在 Room 中有一个注释(@Embedded):
您可以使用 @Embedded 注释来表示您想要分解为其在表中的子字段的对象。然后,您可以像查询其他单独列一样查询嵌入字段
@Entity
public class MyObject {
// nested class
public class GeneralInfo {
public String ownerName;
@PrimaryKey
public long wellId;
}
@Embedded
public GeneralInfo generalInfo;
public long objectId;
// other fields
}
Run Code Online (Sandbox Code Playgroud)
我使用 Gson 从 REST API 反序列化 json 字符串,我希望 Gson 直接将GeneralInfo字段反序列化为MyObject字段。我怎样才能做到这一点?
我希望 GsonMyObject像这样反序列化 s:
{
objectId : 1
wellId : 1
ownerName : "Me"
}
Run Code Online (Sandbox Code Playgroud)
不是这个
{
generalInfo : {
wellId : 1
ownerName …Run Code Online (Sandbox Code Playgroud) 我想使用Java来学习graphQL。我想查询现有的graphQL服务。到目前为止,我发现从POJO类以JSON或IDL形式生成graphQL schemafile的方法,但反过来又不是。根据到目前为止的理解,我必须自己创建Java类,以“表示”我将从查询中接收到的对象。但是我要使用的服务有大量的端点和查询,我自己编写每个pojo类的需求听起来好像我错过了一些东西...我认为必须有一种方法可以像从REST API框架中生成我习惯的存根一样使用招摇或yaml文件?所以... 如何仅给定schemafile自动生成pojo类?我已经在graphql-java中阅读了关于模式优先方法的描述,但他们还假设自己编写pojo类。
谢谢
我正在研究一个Java项目,该项目使用Jackson库解析从外部API接收到的JSON响应。响应中的字段之一有时作为单个对象出现,在某些情况下,它作为对象数组出现。因此,我不确定应该选择哪种数据类型将此响应映射回Java对象。如何将两种响应类型正确映射到Java对象?
在上述可能的重复项中,响应始终是一个列表,但在我看来,它不是。所以我不认为它是上述问题的重复。
以下是我收到的回复:
"configuration": {
"additionalServices": {
"type": "Standard DDOS IP Protection"
},
}
Run Code Online (Sandbox Code Playgroud)
有时这就是我收到相同回复的方式:
"configuration": {
"additionalServices": [
{
"type": "Standard DDOS IP Protection"
},
{
"type": "Remote Management"
}
],
}
Run Code Online (Sandbox Code Playgroud)
这是我的Java映射现在的样子:
"configuration": {
"additionalServices": {
"type": "Standard DDOS IP Protection"
},
}
Run Code Online (Sandbox Code Playgroud)
"configuration": {
"additionalServices": [
{
"type": "Standard DDOS IP Protection"
},
{
"type": "Remote Management"
}
],
}
Run Code Online (Sandbox Code Playgroud)
如果我使用以下声明,则它将仅解析数组输出,并为第一个响应抛出异常:
@JsonIgrnoreProperties(ignoreUnknown = true)
public class Configuration {
private List<AdditionalServices> additionalServices;
}
Run Code Online (Sandbox Code Playgroud)
如果我使用以下声明,则它将仅解析第一个响应,并为第二个响应引发异常:
@JsonIgrnoreProperties(ignoreUnknown = true)
public …Run Code Online (Sandbox Code Playgroud)