【问题标题】:Parse Specific JSON Structure [duplicate]解析特定的 JSON 结构 [重复]
【发布时间】:2017-04-06 03:02:36
【问题描述】:

我想知道如何在java中解析这个特定的JSON结构:

[
   {
      "name":"property2",
      "value":"ANOTHER VALUE"
   },
   {
      "name":"property1",
      "value":"ANOTHER VALUE"
   }
]

我的意思是:我知道如何在 Java 中解析该文件,但我想知道是否有任何 java 注释可以用来将其转换为以下结构:

public class CustomClass    {
    private List<Map<String, String>> propertyListMap;
}

我问这个是因为我想避免生成太多代码...

【问题讨论】:

  • 我不认为这篇文章是重复的......因为没有人向我提供注释,表明核心框架以某种方式解析 json 文件......而且,我想避免的是Fouad Wahabi 在 hist last comment 中提供的解决方案,因为已经有一个方法可以读取...只是想知道如何指示框架类...
  • 贾罗德。这是我不想做的......因为已经有了功能,我不想在那里放置特定和自定义的类......所以这就是为什么我要问是否有 java 注释......

标签: java json parsing


【解决方案1】:

你可以使用Jackson,这里是一个如何将json文件解析成List&lt;Map&lt;String, Object&gt;&gt;的例子:

   try {

        ObjectMapper mapper = new ObjectMapper();

        // read JSON from a file
        List<Map<String, Object>> lmap = mapper.readValue(
                new File("user.json"),
                new TypeReference<List<Map<String, Object>>>() {
        });
        } catch (JsonGenerationException e) {
            e.printStackTrace();
        } catch (JsonMappingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

【讨论】:

    【解决方案2】:

    您需要List&lt;Map&lt;String, String&gt;&gt;?的任何具体原因

    如果没有,我会按照这篇帖子的说明联系List&lt;MappingClass&gt;How to use Jackson to deserialise an array of objects

    【讨论】:

    • 这是因为我被分配了一个自动化测试并且必须发出一个返回这种类型结构的获取请求......我想比较预期映射的键和值与返回的映射api 调用...
    • 那么你可能应该选择@Fouad Wahabi 的回答
    • 是的...但是会发生什么,我想知道是否有一个java注释可以用来指示如何反序列化...已经有一个读取JSON结构的功能...所以我不想添加比我的 Java 类更多的代码...
    猜你喜欢
    • 2022-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    • 2018-07-12
    • 1970-01-01
    • 2021-04-12
    相关资源
    最近更新 更多