MVC 4中Controller绑定JSON数据至表格行的代码编写求助
嗨,我来帮你搞定把这段JSON数据绑定到表格行的事儿!咱们一步步来操作:
1. 先创建对应JSON结构的实体类
首先得把JSON里的结构映射成实体类(假设你用的是Spring MVC这类Java后端框架),这样才能方便解析和传递数据:
// User实体类,对应JSON里的user对象 public class User { private String id; private String name; private String actualName; private String displayName; private String email; private boolean deleted; private long deletedDate; private String authenticationRealm; private boolean isLockedOut; private long lastLoginDate; // 你JSON里没写完,按实际字段补全就行 // 记得添加上getter、setter方法,或者用Lombok的@Data注解自动生成 } // RoleMapping实体类,对应roleMappings数组里的每个元素 public class RoleMapping { private User user; // 同样需要getter、setter,或者用@Data注解简化 }
2. 在Controller里解析JSON并传递数据到视图
接下来在你的Controller里,把给定的JSON字符串解析成实体类列表,然后放到Model里传给前端页面:
import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import java.util.List; @Controller public class UserTableController { @GetMapping("/user-table") // 自定义你的请求路径 public String showUserTable(Model model) { String jsonString = "{\"roleMappings\":[{\"user\":{\"id\":\"4b147d87-64eb-4049-bbd3-ade96d18af89\",\"name\":\"PFRENC17\",\"actualName\":\"French, Phil (P.)\",\"displayName\":\"French, Phil (P.) (PFRENC17)\",\"email\":\"pfrenc17@abc.com\",\"deleted\":false,\"deletedDate\":0,\"authenticationRealm\":\"f4191d4b-4331-4637-af6f-c89781687bf6\",\"isLockedOut\":false,\"lastLoginDate\":...}}]}"; ObjectMapper objectMapper = new ObjectMapper(); try { // 用一个外层包装类解析最外层的roleMappings数组 RoleMappingWrapper wrapper = objectMapper.readValue(jsonString, RoleMappingWrapper.class); List<RoleMapping> roleMappings = wrapper.getRoleMappings(); // 把数据放到Model里,供前端页面调用 model.addAttribute("roleMappings", roleMappings); } catch (Exception e) { e.printStackTrace(); // 这里可以添加错误处理,比如返回错误页面 return "error-page"; } return "user-table-view"; // 返回你的表格页面视图名称 } // 外层包装类,专门用来解析JSON最外层的结构 static class RoleMappingWrapper { private List<RoleMapping> roleMappings; public List<RoleMapping> getRoleMappings() { return roleMappings; } public void setRoleMappings(List<RoleMapping> roleMappings) { this.roleMappings = roleMappings; } } }
3. 在前端视图里渲染表格行
假设你用的是Thymeleaf模板(Spring Boot常用),在user-table-view.html里循环渲染表格:
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <title>User List Table</title> </head> <body> <table border="1" cellpadding="8"> <thead> <tr> <th>ID</th> <th>Username</th> <th>Actual Name</th> <th>Email</th> <th>Locked Status</th> <!-- 按需添加其他列 --> </tr> </thead> <tbody> <!-- 循环遍历roleMappings,取出每个user对象渲染表格行 --> <tr th:each="mapping : ${roleMappings}"> <td th:text="${mapping.user.id}"></td> <td th:text="${mapping.user.name}"></td> <td th:text="${mapping.user.actualName}"></td> <td th:text="${mapping.user.email}"></td> <td th:text="${mapping.user.isLockedOut ? 'Locked' : 'Active'}"></td> </tr> </tbody> </table> </body> </html>
如果你的项目用的是其他技术栈(比如ASP.NET MVC),核心思路也是一致的:先把JSON反序列化为实体集合,传递到视图后,用对应视图引擎(比如Razor)循环生成表格行即可。
内容的提问来源于stack exchange,提问作者Guru
相关产品推荐
相关产品推荐

