【问题标题】:Creating Json Object Template From Objects Of Objects从对象的对象创建 Json 对象模板
【发布时间】:2019-05-05 17:32:04
【问题描述】:

我有一个类似这样的 JSON

{  
   "uniqueId":"junk",
   "buildingId":"123",
   "famousFor":[  
      {  
         "famousForId":"asd",
         "name":"Gaming",
         "activeState":true
      }
   ],
   "openHours":[  
      {  
         "day":"Sunday",
         "timingsFrom":{  
            "time":"11:00",
            "meridian":"AM"
         },
         "timingsTo":{  
            "time":"11:59",
            "meridian":"PM"
         }
      }
   ],
   "uploadedImages":{  
      "coverPhoto":[  
         {  
            "imageUrl":"http://google.com/images/a123a.png",
            "activeState":false
         }
      ],
      "profilePhoto":[  
         {  
            "imageUrl":"http://google.com/images/a123a.png, 
                        "            activeState":false
         }
      ]
   },
   "fDescriptions":[  
      {  
         "fMapUrl":"http://google.com/images/a123a.png",
         "tag":"1"
      }
   ],
   "Outlets":[  
      {  
         "outletName":"Halo",
         "floorNumber":1,
         "category":"Gaming"
      }
   ]
}

现在问题是我必须创建一个 GET API,它本质上将为我提供具有空值的相同模板。返回对象时,它向我发送了空值。如何标准化看起来相同的模板。我的对象看起来像这样。

public class EssentialDetails {

    @NotBlank(message=ApplicationUtil.MISSING_FIELD)
    @Valid
    @Pattern(regexp = "[0-9]+$",message="DP ID Must be Number")
    String dpId;
    @Id @NotBlank(message= ApplicationUtil.MISSING_FIELD)
    @Valid
    @Pattern(regexp = "[A-Za-z0-9]+$",message="Must Be Combination of Number and Letters")
    String tpId;
    @NotNull(message=ApplicationUtil.MISSING_FIELD)   @Valid
    List<FamousFor> famousFor;
    @NotNull(message=ApplicationUtil.MISSING_FIELD)  @Valid
    List<OpenHours> openHours;
    @NotNull(message=ApplicationUtil.MISSING_FIELD)  @Valid
    Pictures uploadedImages;
    @NotNull(message=ApplicationUtil.MISSING_FIELD) @Valid
    List<FloorDescription> floorDescriptions;
    @NotNull(message=ApplicationUtil.MISSING_FIELD)  @Valid
    List<Outlets> mallOutlets;

}

如何传递包含模板中每个字段的空模板?我正在使用 java 8 和 spring boot 2.0.6。

【问题讨论】:

  • 所以对于那些对象不存在的值,您需要空键?
  • @KOTIOS 非常正确,我需要该键存在,但值可以为空或空
  • 所以你只需要每个字段都是一个空字符串或空字符串吗?如果返回模型的新实例。
  • @Code_Is_Law 我需要空字符串,我知道我是否会初始化该对象并返回它会自动返回空值,但是即使我初始化了嵌套对象,也不是所有的嵌套属性都被填充了。只返回空列表

标签: java json spring spring-mvc spring-boot


【解决方案1】:

如果注释下方为空或 null 或某些有效值,则可以在模型的属性上方使用

@JsonInclude(ALWAYS)

【讨论】:

  • 不幸的是,这似乎不是一个合适的解决方案,也没有奏效
  • 你能告诉我这个标签是否生成了空标签吗?如果有更多的验证注释和这个标签一起,那将取决于是否可以生成
  • 它也没有生成空标签,但是我找到了使用 java 8 功能解决这个问题的方法,这个示例是下面的 inscriber return ObjectConverter.convertSingleResource(essentialDetails, essentialDetails1 -&gt; { EssentialDetailsDTO essentialDetailsDTO = new EssentialDetailsDTO(); essentialDetailsDTO.setDpId(essentialDetails1.getDpId()); essentialDetailsDTO.setTpId(essentialDetails1.getTpId());
猜你喜欢
  • 2014-06-05
  • 2022-07-18
  • 1970-01-01
  • 2015-09-20
  • 1970-01-01
  • 2019-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多