【问题标题】:Parse JSON record to extract key and value and put into Map in java解析 JSON 记录以提取键和值并放入 Java 中的 Map
【发布时间】:2011-07-12 10:37:43
【问题描述】:

我的表中有一个列,它将以字符串格式存储数据,示例数据是

{"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 中执行此操作任何帮助

【问题讨论】:

标签: java json spring-mvc


【解决方案1】:

从数据库中读取完整的 JSON 字符串,然后使用 JSON 解析器对其进行解析,并从解析返回的数据结构/对象中提取您感兴趣的信息。

有很多可用的 JSON 解析器。查看this page,它在Java 部分列出了其中的一些(您必须向下滚动一点)。

【讨论】:

    【解决方案2】:

    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"));
    

    【讨论】:

      猜你喜欢
      • 2017-06-20
      • 2020-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多