【问题标题】:Get json object data on jax-rs在 jax-rs 上获取 json 对象数据
【发布时间】:2014-12-05 17:20:26
【问题描述】:

我的 web 服务上有这个 put 方法,这个方法使用一个 json 对象,但是如果该方法接收到一个带有名称、姓氏、从属关系和国家字段的 json 对象,我如何在我的方法中获取这些数据?

@PUT
@Path("/Updatemember/{nom}/{ape}/{afi}/{nac}")
@Consumes({"application/json"})
@Produces(MediaType.TEXT_PLAIN)
public String Updatemember(@PathParam("nom")String nombre, @PathParam("ape")String apellido, 
                            @PathParam("afi")String afiliacion, @PathParam("nac")String nacionalidad) throws SQLException
{
    Miembro.update(nombre, apellido, afiliacion, nacionalidad);
    return "Data has been updated";
}

编辑: 现在方法是

@PUT
@Path("/Updatemember/")
@Consumes({"application/json"})
@Produces(MediaType.TEXT_PLAIN)
public String Updatemember(Miembro miembro) throws SQLException
{
    miembro.update();
    return "Se han actualizado los datos del miembro";
}

并且类成员(西班牙语中的 miembro)有这个方法,效果很好。

public void update() throws SQLException
{
    Connection conexion = Conexion.GetConnection();
    String sql = "UPDATE miembros SET afiliacion='"+getAfiliacion()+"', nacionalidad='"+getNacionalidad()+"' WHERE nombre='"+getNombre()+"' AND apellidos='"+getApellidos()+"'";
    PreparedStatement pre = (PreparedStatement) conexion.prepareStatement(sql);
    pre.execute();
}

Updatemember 给了我一个 Nullpoiter 异常,未创建 miembro 对象但我不知道为什么。

【问题讨论】:

  • 1) 您使用的是什么 JAX-RS 实现(例如 Jersey、Reaseasy)? 2) 显示您的 JSON 3) 显示您的 Miembro 类 4) 服务器日志中有任何错误吗? 5) 你添加了 JSON 提供者吗?
  • 已经解决了,谢谢

标签: java json jax-rs


【解决方案1】:

您的方法签名是说您接受了四个路径参数(不是 json - 您可以将 queryParams 设置为 json)。

如果您创建一个名为 Member 的类,并将这些参数作为该类的成员:

@XmlRootElement
 public class Member {
      // public constructor 
      // getters and setters for your fields
 }

然后让该类成为您方法的参数并将路径更改为@Path("/UpdateMember/{id}")。

如果您确保在类路径中有 jackson 或 moxy,则您的 Member 参数应该是类 Member 的有效对象实例。

在此处阅读球衣文档:https://jersey.java.net/documentation/latest/media.html#json

【讨论】:

  • 我知道它接收 4 个路径参数,但我之所以问是因为我希望该方法与 json 对象一起使用。我已经编辑了我的帖子以添加更多信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
  • 1970-01-01
  • 1970-01-01
  • 2012-06-29
  • 1970-01-01
  • 2017-04-23
  • 1970-01-01
相关资源
最近更新 更多