开发过程中,两个服务分别用C#和java,在通信的过程由于各自命名习惯导致双方无法获取到具体的值。如下步骤
1,定义C# model
public class HostReceiveModel
{
public string TaskId { get; set; }
}
2,实例化C#model
HostReceiverModel model = new HostReceiveMode{
TaskId = "abc";
}
3,定义java model (有问题)
public class AgvStateResponse {
private String taskId ;
public String getTaskId() {
return taskId;
}
public void setTaskId(String taskId) {
this.taskId = taskId;
}
}
4,C#服务用post将model发送给java服务
java接受到的taskId=null,研究了一下,只需要在定义java model 时候用json 的annotation 映射一下。
正确写法如下所示:
public class AgvStateResponse {
private String taskId ;
public String getTaskId() {
return taskId;
}
@JsonProperty(value="TaskId") //这里一定要写成c#里面定义的名字
public void setTaskId(String taskId) {
this.taskId = taskId;
}
}