为了确保在我的RESTful Web服务中来回发送的数据不是多余的,每个嵌套对象只将它的ID序列化(A Message的User创建者只有userId序列化,因为客户端和服务器都已经知道了所有的细节.用户).
序列化工作完美,产生:
{"messageCreatorUser":"60d01602-c04d-4a3f-bbf2-132eb0ebbfc6","messageBody":"Body", ...}
Run Code Online (Sandbox Code Playgroud)
问题:反序列化不会生成仅包含其ID的嵌套对象.生成的反序列化嵌套对象为null.
这是前面提到的Message和User对象.从此处指定的第3个选项中使用序列化"策略": 如何仅使用Jackson序列化孩子的ID.
Message.java
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "messageId")
public class Message implements Serializable {
// -- Hibernate definitions omitted --
private UUID messageId;
// -----------------------------------------------------------------
// Here is what makes the serializer print out the ID specified on the class definition
@JsonIdentityReference(alwaysAsId = true)
// Here is my attempt to get the User class back when I deserialize
@JsonDeserialize(as = …Run Code Online (Sandbox Code Playgroud) 我只需要将查询参数附加到传出请求上.(Java EE 7.0,JAX-RS 2.0)
具体来说,我目前使用RESTeasy Client ver 3.0.14,所以我使用花哨的接口代理系统进行调用.我试图产生这样的东西:
myapplication/api/path?timestamp=000
有:
@Provider
public class MyRequestFilter implements ClientRequestFilter {
@Context
private HttpServletRequest servletRequest;
public void filter(ClientRequestContext requestContext) throws IOException {
servletRequest.getParameterMap().put("timestamp", new String[]{
String.valueOf(new Date().getTime())
});
}
}
Run Code Online (Sandbox Code Playgroud)
我确定我也在注册它client.register(MyRequestFilter.class).随意问的问题.谢谢!
我在 Windows 10 中使用 Laravel 5.6。我使用的数据库是 MySQL 8.0 。当我尝试从浏览器加载 Web 视图时,Laravel 日志中出现内存大小耗尽错误消息,并且在 Web 视图中显示任何内容。
[2018 年 12 月 26 日星期三 09:34:47] PHP 致命错误:
第 168 行 D:\Project\Project-Serve\ven dor\composer\autoload_static.php 中允许的内存大小为 2097152 字节已耗尽(尝试分配 4096 字节)