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

在REST JSON响应中获取更少的列

严曜文
2023-03-14

我是RESTWebServices开发新手。目前,我们正在使用Spring Boot、Spring JPA进行服务开发。在REST响应中,我很难返回选择性列。我的问题如下:

我有一个包含10行的用户表,其中包含以下列

  1. Id

我的用户实体对象是:

@Entity
@Table(name="user")
public class User
{

@Id
@GeneratedValue(generator="ID", strategy=GenerationType.SEQUENCE)
private long id;

@Column(name="Name")
private string name;

@Column(name="age")
private int age;

@Column(name="city")
private string city;

@Column(name="mobile number")
private string mobileNumber;
.
.
.
getter and setters
.
.
.}

我需要制定以下两个要求:

  1. 返回包含所有列的所有行
  2. 返回只有三列(Id、名称和手机号)的所有行

对于第一个需求,我可以通过使用JPA的findAll()来实现它

对于第二个要求,我尝试使用自定义查询,如下所示:

@Query("select New com.org.user(u.id, u.name, u.mobileNumber) from user u")
public List<user> getList()

有了这个,我的Json响应如下所示,其他两个字段(城市和年龄)具有默认值,但表中没有实际值。

[
{
"id": 1,
"name":"Rocky"
"age":0,
"city":null,
"mobileNumber": "9080980909"
},
{
"id": 2,
"name":"Stella"
"age":0,
"city":null,
"mobileNumber": "8909012239"
}
.
.
.
.
{
"id": 10,
"name":"Una"
"age":0,
"city":null,
"mobileNumber": "78976887989"
}
]

但我需要如下的响应,只包含三个字段

[
{
"id": 1,
"name":"Rocky",
"mobileNumber": "9080980909"
},
{
"id": 2,
"name":"Stella",
"mobileNumber": "8909012239"
},
.
.
.
{
"id": 10,
"name":"Una",
"mobileNumber": "78976887989"
}
]

有没有人能帮助我如何得到上述回复?

共有1个答案

濮阳原
2023-03-14

在实体上使用@JsonInclude(Include.NON\u NULL)注释。它将排除json响应中的所有空字段。但是,您必须将“age”从int更改为Integer数据类型,才能将其更改为null。

@Entity
@Table(name="user")
@JsonInclude(Include.NON_NULL)
public class User
{

@Id
@GeneratedValue(generator="ID", strategy=GenerationType.SEQUENCE)
private long id;

@Column(name="Name")
private String name;

@Column(name="age")
private Integer age;

@Column(name="city")
private String city;

@Column(name="mobile number")
private String mobileNumber;
.
.
.
getter and setters
.
.
.}
 类似资料:
  • 我使用了Web API控制器中的IActionResult和邮递员的加热方法,我的功能正在工作,但没有得到成功响应。我的代码是: Postman中的响应是:无法获得任何响应连接到https://localhost:44303/api/pousada/markasinactive时出错。可能发生这种情况的原因:服务器无法发送响应:确保后端正常工作自签名SSL证书被阻止:通过关闭设置>常规代理配置错误

  • 我从JMeter调用一个登录API,返回json格式的结果。对于这个API调用,我得到了预期的结果,但是json响应包含ï»字符。在我添加的请求中,DataType:json和Content-Type:application/json;字符集=utf-8。 任何建议。 输出Json响应

  • 我从服务器得到这样的响应: 但打印fetch API捕获中的err只会返回错误对象。 它打印了这个(来自谷歌浏览器): 我想得到正确的错误处理状态代码,就像服务器没有响应一样。 在这种情况下,有没有办法获取响应数据?否则,我可以尝试什么替代方案? 任何建议都将不胜感激!

  • 当我向服务器发布一些url时,我试图在webview中获取响应标题。我使用的是shouldInterceptRequest方法。 此方法返回WebResource响应对象。但我不知道如何从中获取响应标头。 默认情况下,返回super。shouldInterceptRequest(视图、请求) 返回null。 那么,应该做些什么才能捕捉到实际的webview响应呢。

  • 问题内容: 有一个页面(URL),我通过XMLHttpRequest请求它,但是我没有从所请求的URL获得响应,而是将请求定向到另一个页面, 请求-> page.php* 从> directedpage.php 获得响应 * 问题是如何获取响应网址?(例如directedpage.php) 问题答案: 最终URL(在所有重定向之后)在实例的属性中可用。此功能是新增功能,仅在2014年9月[参考]稳

  • 相关问题 < code>Json的响应是< code >新行分隔符Json: 我正在使用来提出请求: 我可以在我的中看到响应,但收到以下错误: 中格式错误的JSON < li >响应在< code>NdJson中,它无法正确解析它 如何正确解析它?