如何使用freemarker获取JSON的内部节点?

时间:2018-01-24 08:51:48

标签: json freemarker

示例JSON:

{
  "results": [
  {
   "_id": "12345",
   "CustomerAccount": {
     "Status": "ACTIVE",
     "Address": [
      {
        "FormatCode": "PRIM",
        "FreeFormatAddress": "ENGLAND"
      },
      {
        "FormatCode": "SEC",
        "FreeFormatAddress": "IRELAND"
      }
    ]
   },
  "LegalVehicleID": "01",
  "BrokerAccount": {
    "Status": "ACTIVE",
    "Address": [
      {
        "FormatCode": "PRIM123",
        "FreeFormatAddress": "SG"
      },
      {
        "FormatCode": "SEC123",
        "FreeFormatAddress": "IND"
      }
    ]
  }
 }
 ]
}

因此,无论CustomerAccount或BrokerAccount如何,我都希望将地址作为列表。

result.*.Address然后使用FreeMarker访问FormatCodeFreeFormatAddress

请让我知道如何做到这一点谢谢。

1 个答案:

答案 0 :(得分:0)

模板语言本身没有这样的功能。这样的事情可以通过设计用于对JSON进行查询的TemplateModel来实现,类似于这样的查询可以针对XML(W3C DOM更加精确)开箱即用。但是我不知道是否有人为JSON编写了这样的东西(即便如此,它还会质疑Java对象代表JSON ......就像杰克逊JsonNode - s?)。