You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:50:32