代码之家  ›  专栏  ›  技术社区  ›  Ramon De Les Olives

使用Jackson解析Json文件

  •  2
  • Ramon De Les Olives  · 技术社区  · 7 年前

    我调用一个返回Json对象的WS,如下所示:

       {
            "id": "salton", 
            "name": "salton", 
        }
    

    我可以使用

    ObjectMapper mapper = new ObjectMapper();
    return mapper.readValue(jsonStr, Show.class);
    

    然后,我有另一个WS返回对象列表,如下所示

    {
        "id": "saltonId", 
        "name": "salton", 
    },
    {
        "id": "elCordeLaCiutat", 
        "name": "elCordeLaCiutat", 
    }
    

    我想用

    ObjectMapper mapper = new ObjectMapper();
    return mapper.readValue(jsonStr, List<Show.class>.class);
    

    但我有编译问题

    Multiple markers at this line
        - List cannot be resolved to a variable
        - Syntax error on token ">", byte expected after this 
         token
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   senerh    7 年前

    对象列表应包装在 [] 如下所示

    [
        {
            "id": "saltonId", 
            "name": "salton", 
        },
        {
            "id": "elCordeLaCiutat", 
            "name": "elCordeLaCiutat", 
        }
    ]
    

    您可以这样取消管理:

    ObjectMapper mapper = new ObjectMapper();
    List<Show> shows = Arrays.asList(mapper.readValue(json, Show[].class));
    
        2
  •  0
  •   Nuñito Calzada    7 年前
    Type listType = new TypeToken<List<Show>>() {}.getType();
    return mapper.readValue(jsonStr, listType.class);