Json 避免删除子对象
我正在用Hibernate框架编写一个Spring应用程序 在我的应用程序中,有一个JSON调用。在这种情况下,JSON响应返回如下所示的对象层次结构:Json 避免删除子对象,json,spring,hibernate,Json,Spring,Hibernate,我正在用Hibernate框架编写一个Spring应用程序 在我的应用程序中,有一个JSON调用。在这种情况下,JSON响应返回如下所示的对象层次结构: 反对 供应批次 农夫 该农民具有ID、姓名、地址和联系人等属性 数组列表的第一个对象返回所有属性,子对象填充相关数据。但问题是,农民位于第二个或第三个或任何其他供应批次中,该农民将作为供应批次中名为“农民”的属性返回,其值为农民ID 但当我在控制器中循环该对象时,它会打印出所有农民的名字。我搞不懂这是什么行为。以下是示例对象的屏幕截
- 反对
- 供应批次
- 农夫
- 供应批次
@RequestMapping(value = {"admin/getTaskByDate","user/getTaskByDate"}, method = RequestMethod.GET)
public @ResponseBody List<Task> getTaskByDate(@RequestParam("date") String date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dat = null;
try {
dat = sdf.parse(date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
List<Task> tasksByDate = taskService.getFeedIssueTasksByDate(dat);
for(Task t : tasksByDate)
{
System.out.println("Farmers-"+t.getSupplyBatch().getFarmer().getName());
}
return tasksByDate;
}
@RequestMapping(值={“admin/getTaskByDate”,“user/getTaskByDate”},方法=RequestMethod.GET)
public@responseBy列表getTaskByDate(@RequestParam(“日期”)字符串日期){
SimpleDataFormat sdf=新SimpleDataFormat(“yyyy-MM-dd”);
Date dat=空;
试一试{
dat=sdf.parse(日期);
}捕获(解析异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
List tasksByDate=taskService.getFeedIssueTasksByDate(dat);
for(任务t:tasksByDate)
{
System.out.println(“Farmers-”+t.getSupplyBatch().getFarmer().getName());
}
返回任务日期;
}
下面是jsp页面中调用此json响应的代码
<script>
function getTaskById(){
var date = $('#inputDate').val();
$("#tblTask").find("tr:gt(0)").remove();
var sid = this.value;
$.ajax({
url : 'http://localhost:8080/jp/user/getTaskByDate.json?date='+date+'',
success : function(data) {
console.log(data);
for(var i = 0; i < data.length; i++) {
var obj = data[i];
var act;
var dt = new Date(obj.duedate);
if(obj.type == "Feed Issuing")
{
act='<td><a href="./addBatchFeed.html?tid='+obj.taskId+'&bid='+obj.supplyBatch.supplyBatchId+'" class="btn btn-primary">Issue Feed</a></td>'
}
else
{
act='<td><a href="./addCatching.html?tid='+obj.taskId+'&bid='+obj.batch+'" class="btn btn-primary">Catch</a></td>';
}
$('#tblTask tr:last').after('<tr><td>'+obj.taskId+'</td><td>'+dt+'</td><td>'+obj.status+
'</td><td>'+obj.supplyBatch.supplyBatchId+'</td><td>'+obj.supplyBatch.farmer.name+'</td><td>'+obj.feedType+'</td><td>'+obj.quantity+'</td>'+act+'</tr>');
}
}
});
return false;
}
函数getTaskById(){
变量日期=$('#inputDate').val();
$(“#tblTask”).find(“tr:gt(0)”).remove();
var sid=此值;
$.ajax({
网址:'http://localhost:8080/jp/user/getTaskByDate.json?date=“+日期+”,
成功:功能(数据){
控制台日志(数据);
对于(变量i=0;i
请发布您不想打印的代码。您好,我在控制器和jsp页面中添加了代码,谢谢。如果您问为什么要在控制器中打印农民姓名,那是因为您有一个系统打印输出语句,除非我遗漏了什么!!是的,我知道。我的问题是为什么该对象已从json响应中删除?如果您参考屏幕截图,您可以看到它。请在控制器中打印Json响应,看看是否正确