当前位置: 首页 > 知识库问答 >
问题:

如何通过带有JAX-RS和Jackson的POST请求接收具有多个节点的JSON文件(Quarkus)

东门茂实
2023-03-14

当im tryin通过我的JAX-RS API得到一个Post请求时,它总是发送一个空值。我不知道Jackson注释是否不正确,或者是否需要使用ObjectMapper。

以下是我的课程:

public class ClassA{

  private String name;
  private ClassB classB;

public ClassA(){}

public ClassA(String name, ClassB classB){
   this.name = name;
   this.classB = classB;
}

@JsonGetter
public String getName(){ return name; }
@JsonGetter
public ClassB getClassB(){ return classB; }

这是B班

public class ClassB{

@JsonProperty("type")
private String type;
@JsonProperty("number")
private int number;

public ClassB(){}

@JsonPropertyOrder({"type, number"})
public ClassB(String type, int number){
   this.type= type;
   this.number= number;
}

@JsonGetter
public String getType(){ return type; }
@JsonGetter
public int getNumber(){ return number; }

我的JSON文件:

{
  "type": "typeExample;
  "classB": {
    "type": "classBTypeExample";
    "int": 10;
  }
}

我想让Jackson读取该文件,然后将对象类型ClassA添加到列表中(问题是甚至没有读取它)。这是API代码:

@Path("/path")
public class Requests {
    private Set<ClassA> classesA = Collections.newSetFromMap(Collections.synchronizedMap(new LinkedHashMap<>()));

    @GET
    public Set<ClassA> list() {
            return classesA;
        }

    @POST
    public Set<ClassA> add(ClassA classA){
        classesA.add(classA);
        return classesA;
    }
}

我已经添加了quarkus。杰克逊。对于应用程序,未知属性失败=true。属性文件

共有1个答案

毛声
2023-03-14

这是一件我没有注意到的简单事情。我忘了在构造函数上设置值。因此,我只需将@constructorproperty({})添加到类构造函数中,就成功了。

 类似资料:
  • 问题内容: “无效”是指不期望的参数。 例如: 然后我打电话 问题答案: 您可以检查使用ContainerRequestFilter并将传递的参数与定义的参数进行比较: 不要忘记ServletRequest#getParameterMap返回一个Map,该Map包含查询字符串参数和在请求正文中传递的参数。因此,也许您需要自己解析查询字符串。 注意:这不会加快您的应用程序的速度。

  • 问题内容: 如何使用与以下代码等效的node.js发出Http请求: 问题答案: 使用http客户端。 遵循以下原则:

  • 问题内容: 我使用Python Requests库下载一个大文件,例如: 大文件的下载速度为每秒+-30 Kb,这有点慢。与bigfile服务器的每个连接都受到限制,因此我想建立多个连接。 有没有一种方法可以同时建立多个连接来下载一个文件? 问题答案: 您可以使用HTTP标头仅获取文件的一部分(此处已涵盖python)。 只需启动几个线程,并获取每个线程的不同范围,就可以完成;) 还要注意,并非每

  • 问题内容: 我想通过PHP 在Blogger博客中添加帖子。Google提供了以下示例。如何在PHP中使用它? 您可以通过向带有帖子JSON正文的帖子集合URI发送POST请求来为博客添加帖子: 问题答案: 您需要使用cURL库发送此请求。 如果由于某种原因您不想/不想使用cURL,可以这样做:

  • 我在通过C#API中的WebClient发送POST请求时遇到问题。该职位要求如下: 我知道如何处理像用户代理等标题。,但是我对边界有一个问题。我不知道怎么把它们放在哪里...

  • 我有一个PHP脚本,它成功地返回一些简单的头以及一个set-cookie头,如果在浏览器中直接调用(或由邮递员)。我可以从chrome DevTools上读到这样的响应标题。但是当我用Axios调用它时,set-cookie头就不会显示出来,浏览器中也没有保存cookie。 我尝试了不同的方法,比如在服务器端更改响应头,并在axios中使用“with Credentials:true”,但都不起作