我的表中有一列将以字符串格式存储数据样本数据
{"pre-date":{"enable":true,"days":"3","interval":"1","mail-template":"582"},"on-date":{"enabled":false},"post-date":{"enabled":false}}
,字符串包含json数据等数据 但是当我发送此记录供控制器查看时,它应该采用格式
enable : true
days : 3
interval : 1
这样我就可以设置各个表单元素的值如何在java中帮助
答案 0 :(得分:3)
从数据库中读取完整的JSON字符串,然后使用JSON解析器解析它,并从解析返回的数据结构/对象中提取您感兴趣的信息。
有许多JSON解析器可用。查看this page,其中列出了Java部分中的一些(您必须向下滚动一点)。
答案 1 :(得分:1)
Jackson为将任何JSON对象简单转换为仅由Java SE组件组成的Java Map
提供了最佳支持。
以下是使用原始问题中的JSON的示例。
// {"pre-date":{"enable":true,"days":"3","interval":"1","mail-template":"582"},"on-date":{"enabled":false},"post-date":{"enabled":false}}
String json = "{\"pre-date\":{\"enable\":true,\"days\":\"3\",\"interval\":\"1\",\"mail-template\":\"582\"},\"on-date\":{\"enabled\":false},\"post-date\":{\"enabled\":false}}";
ObjectMapper mapper = new ObjectMapper();
// To put all of the JSON in a Map<String, Object>
Map<String, Object> map = mapper.readValue(json, Map.class);
// Accessing the three target data elements
Map<String, Object> preDateMap = (Map) map.get("pre-date");
System.out.println(preDateMap.get("enable"));
System.out.println(preDateMap.get("days"));
System.out.println(preDateMap.get("interval"));