将JSON字符串转换为表格

时间:2014-07-17 21:10:41

标签: java jquery json rest spring-mvc

大家好!也许你可以帮助我 现在我的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.....
   }
});

1 个答案:

答案 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');
});