如何发送纯 JSON 对象(驻留在模型对象中)以在 spring 启动时查看?

How to send pure JSON object (which resided inside model object) to view in spring boot?

我是 spring 启动开发的新手。我必须将我的 json 对象放入我的模型对象中并将其发送给查看。我使用 jackson 库的 ObjectMapper class 将对象转换为字符串。

我的控制器代码段是

@GetMapping("/show-employee")
public String showEmployee(Model model) {
    ObjectMapper objectMapper = new ObjectMapper();
    String empString = objectMapper.writeValueAsString(new Employee("santhosh", "kumar", "example@gmail.com"))
    model.addAttribute("employee", empString);
    return "employees/employee-display";
}

而我的模型 class 是

@Entity
public class Employee {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;
    
    @NotBlank
    @Size(min = 3, max = 20)
    private String firstName;

    @NotBlank
    @Size(min = 3, max = 20)
    private String lastName;
    
    @Email(message = "Please enter a valid email id")
    private String email;

    // constructors, getters and setters

在视图方面,我有如下 thymeleaf 代码来访问 JSON 对象

<script>
        var employeesJsonStr = "[[${employee}]]";
        console.log(employeesJsonStr);
</script>

但是在控制台上 window,我最终得到了这个...

{&quot;id&quot;:0,&quot;firstName&quot;:&quot;santhosh&quot;,&quot;lastName&quot;:&quot;kumar&quot;,&quot;email&quot;:&quot;example@gmail.com&quot;,&quot;projects&quot;:null}

如何将 JSON 字符串传递到前端,以便我可以使用 Javascript 访问它而无需进行 html 解码。

我了解到您正在将 JSON 对象转换为字符串并在模型中进行设置。这显然是在前端生成字符串,而不是您可以直接在响应中发送模型对象。无论如何它都会在最后产生 JSON 数据。

@GetMapping("/show-employee" , produces = MediaType.APPLICATION_JSON_VALUE)
public List<Employee> showEmployee(Model model) {
    Employee emp = new Employee("santhosh", "kumar", "example@gmail.com"))
    model.addAttribute("employee", emp);
    return "employees/employee-display";
}