如何在JSON中表示一组映射的列表

3
我希望用Json表示一个List<Map<String,List<String>>>
例如,我想要表示:
  • /bin到*.jar和*.war
  • /cfg到*.properties和*.data
请问以下是否是正确的表示方式?
{
  "directories": [
    {
      "name": "bin",
      "regex": [
        "*.jar",
        "*.war"
      ]
    },
    {
      "name": "cfg",
      "regex": [
        "*.properties",
        "*.data"
      ]
    }
  ]
}

1
每个列表在JSON中都是[],每个映射在JSON中都是{}。在这种情况下,存在一个多余的顶级(应该是List / [],而不是Map / {}),并且某些元素不符合List <String>(例如,“name”:“bin”,“bin”是一个字符串而不是List <String>)。当然,通过删除Blah <Blah <Blah <..>>>限制并将其视为[尚未由类定义]对象的轮换可能更简单。 - user166390
你需要决定你的地图结构。你想要它是Map<String,Object>,其中Object可以是String(目录名称)或List<String>(正则表达式),还是你想要Map<String,List<String>>,在这种情况下,你必须将目录名称值定义为列表。 - Darren
@DarrenNaylor 确实,我更喜欢一个Map<String,Object>,其中Object是一个List<String>。 我相信,这就是我所构建的,不是吗? - James Raitsev
Map<String,List<String>> 和 Map<String,Object> 是不同的,因为前者不能保存 String 值。因此,您的 JSON 不表示使用 Map<String,List<String>> 定义的对象。 - Darren
1个回答

1
显然,您现在已经解决了这个问题,但当我追寻类似的问题时,我发现了这个。根据jsonlint.com的说法,您发布的字符串是有效的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接