我有一个发送到服务器和从服务器发送的用户对象.当我发出用户对象时,我不想将散列密码发送给客户端.所以我添加@JsonIgnore了密码属性,但这也阻止了它被反序列化为密码,这使得在没有密码时很难注册用户.
我怎样才能@JsonIgnore应用于序列化而不是反序列化?我正在使用Spring JSONView,所以我没有很多控制权ObjectMapper.
我试过的事情:
@JsonIgnore物业@JsonIgnore仅添加getter方法我有一个带密码字段的实体类:
class User {
private String password;
//setter, getter..
}
Run Code Online (Sandbox Code Playgroud)
我希望在序列化期间跳过此字段.但它应该仍然能够反序列化.这是必需的,以便客户端可以向我发送新密码,但无法读取当前密码.
我如何与杰克逊完成这项任务?
简而言之,我的一个实体有一个GeometryCollection,当你调用"getBoundary"时会抛出一个异常(为什么这是另一本书,现在让我们说这就是它的工作方式).
有没有办法告诉杰克逊不要包括那个特定的吸气剂?我知道当我拥有/控制代码时我可以使用@JacksonIgnore.但事实并非如此,杰克逊通过连续序列化父对象来达到这一点.我在jackson文档中看到了一个过滤选项.这是一个看似合理的解决方案吗?
谢谢!
我需要在渲染之前按名称排除某些字段.字段列表是动态的,因此我无法使用注释.
我试图创建自定义序列化程序,但我不能在那里获得字段名称.
在我使用的GSON中ExclusionStrategy,但杰克逊没有这样的功能.有同等的吗?
我有一个类,里面也有变量.有时我想忽略一些字段,有时候不反序列化(也许在序列化时).我怎么能在杰克逊这样做?
我一直在思考使用Spring MVC设计JSON API的最佳方法.我们都知道IO很昂贵,因此我不想让客户端进行多次API调用以获得他们需要的东西.但与此同时,我不一定要回厨房水槽.
作为一个例子,我正在开发类似于IMDB的游戏API,而不是用于视频游戏.
如果我返回与游戏相关的所有内容,它将看起来像这样.
/ API /游戏/ 1
{
"id": 1,
"title": "Call of Duty Advanced Warfare",
"release_date": "2014-11-24",
"publishers": [
{
"id": 1,
"name": "Activision"
}
],
"developers": [
{
"id": 1,
"name": "Sledge Hammer"
}
],
"platforms": [
{
"id": 1,
"name": "Xbox One",
"manufactorer": "Microsoft",
"release_date": "2013-11-11"
},
{
"id": 2,
"name": "Playstation 4",
"manufactorer": "Sony",
"release_date": "2013-11-18"
},
{
"id": 3,
"name": "Xbox 360",
"manufactorer": "Microsoft",
"release_date": "2005-11-12"
}
],
"esrbRating": {
"id": 1,
"code": …Run Code Online (Sandbox Code Playgroud) 我有以下课程 -
雇员
public class Employee {
private String firstName ;
private String lastName ;
private String emailAddress ;
private String ssn ;
}
工资表
public class Payroll {
// different payroll related fields
private Employee emp ;
}
HR
public class HR {
// different HR related fields
private Employee emp ;
}
现在当我序列化我的Payroll类时,我不想从Employee类序列化我的ssn字段.
当我序列化我的HR类时,我不希望从Employee类序列化我的emailAddress字段.
如何使用Jackson JSON API从序列化中动态排除字段?
我正在编写一个 spring boot api,它从数据库获取一些数据,存储在模型对象中并返回它。但我只想返回模型的几个字段作为 api 响应。
List<MyModel> myModelList = new ArrayList<>();
mongoUserCollection.find().into(myModelList);
class MyModel{
public int id;
public String name;
public String lastname;
public int age;
// getter & setter of all properties
}
Run Code Online (Sandbox Code Playgroud)
我正在显示 myModelList 作为响应。作为回应,它显示了所有字段。如何仅显示特定字段,例如仅显示 ID 和年龄。仅从数据库中选择 ID 和年龄仍将显示响应中模型的所有字段(姓名和姓氏将显示为空)。除了创建新的 ModelView 类或将 JsonIgnore 设置为该模型之外,还有什么方法吗?
我有一个带有 JPA 和 JSON 序列化的 Spring-Boot-Project。我尝试使用 @JsonView 仅序列化指定的属性。它工作正常,但对于我在Order(例如order.user)中的关联,它序列化了空的 Json-Object。
我使用以下依赖项
请参阅以下 Json 结果:
{
"content" : {
"orderResources" : [ {
"receiptDate" : "2019-08-14",
"state" : "BILL_CREATED",
"user" : { },
"employer" : { },
"orderplace" : { },
"propertyManagement" : null,
"plannings" : [ { } ]
}, {
"receiptDate" : "2019-08-17",
"state" : "BILL_CREATED",
"user" : { },
"employer" : { },
"orderplace" : { },
"propertyManagement" : …Run Code Online (Sandbox Code Playgroud)