大家好!也许你可以帮助我 现在我的json服务响应是:{"安全":450,"经济":1850," IT":1233} 我需要将它解析为html表。 我认为我以错误的方式从休息服务中回应我的json。 至少我需要json对象列表。但我不知道该怎么做。 我的目标是返回部门的NAME(DEPARTMENTS实体)和工人实体的AVERAGE SALARY。当我在我的服务上调用get方法时,我不知道如何在我的json文件中创建对象列表 以下是我的消息来源: 部门实体
@Entity
@Table(name ="departments")
public class Department implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String name;
//getters setters....
工人实体
@Entity
@Table(name = "workers")
public class Worker {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String fio;
@ManyToOne
private Department department;
@Column(nullable = false)
private Integer salary;
//getters setters....
我的服务(DepartmentService.class)方法从mysql返回我的数据
@Override
public List<Object[]> getAllDepartments() {
List<Object[]> list;
Query query = entityManager.createQuery("SELECT dp.name, avg (wr.salary) FROM Worker wr join wr.department dp GROUP BY dp.name");
list = query.getResultList();
return list;
}
我的Contollers方法返回json对象(jackson库)
@RequestMapping(value = "/all", method = RequestMethod.GET)
@ResponseBody
public JsonNode getAllDeps() {
List<Object[]> list = departmentService.getAllDepartments();
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Integer> resultMap = new HashMap<String, Integer>(list.size());
for (Object[] result : list)
resultMap.put((String)result[0], ((Double)result[1]).intValue() );
final JsonNode json = objectMapper.valueToTree(resultMap);
return json;
}
结果我想从我的服务json获取对象列表,如: [{名称:&#34;安全&#34;,工资:&#34; 1500&#34;},{名称:&#34;经济&#34;,工资:1850} ..] 在jquery ajax调用成功后,将它们解析为带有两列的html表:
但现在我有了:
{&#34;安全&#34;:1500,&#34;经济&#34;:1850,&#34; IT&#34;:2000} 而且我不知道如何解析它。
我有两个问题: 1)如何制作,我的java spring控制器返回json文件中的对象列表,如:[{name:&#34; Security&#34;,salary:&#34; 1500&#34;},{name:&# 34;经济&#34;,工资:1850} ..] 2)如何在表中解析它,关于成功jquery ajax调用
$.ajax({
type: "GET",
dataType: "json",
url: "http://localhost:8081/all",
success: function(data){
//code.....
}
});
答案 0 :(得分:0)
你在这里问了几个不同的问题......看起来你很了解java,但javascript似乎不是你的强项...
JQuery有一个json.parse方法和ecmascript一样。
请记住,休息一下......它没有任何与UI有关的事情。它只是一个返回数据的服务调用。
所以在你的实际ui上,你将不得不对这些数据做些什么...继承了一些可能有用的jquery ......
$.getJSON( "www.mydomain.com/all", function(data) {
var rows = [];
$.each(data, function(obj, index){
rows.push('<tr><td>' + obj.Security + '</td><td>' + obj.Economical + '</td><td>' + obj.IT + '</td></tr>');
});
$( '<table/>', {
'class': 'my-pretty-table',
html: items.join('')
}).appendTo('#divWhereTableShouldGo');
});