【问题标题】:Convert JSON String to Table将 JSON 字符串转换为表格
【发布时间】:2014-07-17 21:10:41
【问题描述】:

大家好!也许你可以帮助我 现在我来自服务的 json 响应是:{"Security":450,"Economical":1850,"IT":1233} 我需要将其解析为 html 表。 我认为我以错误的方式从休息服务中响应我的 json。 至少我需要 json 对象列表。但我不知道该怎么做。 我的目标是返回部门名称(部门实体)和工人实体的平均工资。而且我不知道如何在我的 json 文件中创建对象列表,当我在我的服务上调用 get 方法时 以下是我的消息来源: 部门实体

@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 中获取对象列表,例如: [{name:"Security",salary:"1500"},{name:"Economical",salary:1850}..], 在 jquery ajax 调用成功后,将它们解析为具有两列的 html 表:

但现在我有了:

{"安全":1500,"经济":1850,"IT":2000} 我不知道如何解析它。

我有两个问题: 1)如何使我的java spring控制器返回json文件中的对象列表,例如:[{name:“Security”,salary:“1500”},{name:“Economical”,salary:1850}..] 2)如何在表中解析它,成功的jquery ajax调用

$.ajax({ 
   type: "GET",
   dataType: "json",
   url: "http://localhost:8081/all",
   success: function(data){        
     //code.....
   }
});

【问题讨论】:

  • 我不知道为什么这个问题被抹黑了。很明显你知道你在问什么,但不知道怎么问......我建议你看看我的回答,稍微调整你的问题,然后询问有关 javascript 的问题。

标签: java jquery json rest spring-mvc


【解决方案1】:

您在这里问了几个不同的问题...看来您对 java 了解得很好,但是 javascript 似乎不是您的强项...

JQuery 和 ecmascript 一样有一个 json.parse 方法。

请记住,休息时.. 它与 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');
});

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-01
  • 1970-01-01
  • 2013-02-04
  • 2020-09-09
  • 2014-09-14
  • 1970-01-01
相关资源
最近更新 更多