При попытке чтения хеша с помощью Freemarker, он считывает строковую переменную с тем же именем, что и у хеша до этого, даже если строковая переменная существует на другом подуровне.
Файл JSON имеет формат ниже.
"Record": {
"@id": "Vehicle#1234#",
"Color": {
"@id": "MasterCode#5678#",
"Code": "RED",
"CodeClass": "",
"CreatedBy": "system",
"CreatedOn": "2015-09-10T00:00:00.0",
"CustomFields": {
},
"DisplayOrder": "999",
"Name": "RED",
"NibrsType": "",
"Recnum": "5678",
"Type": "XXXX"
},
"Type": {
"@id": "MasterCode#9012#",
"Code": "MPVH",
"CodeClass": "",
"CreatedBy": "system",
"CreatedOn": "2015-09-10T00:00:00.0",
"CustomFields": {
},
"DisplayOrder": "999",
"Name": "SUV TYPE VEHICLE",
"NibrsType": "",
"Recnum": "9012",
"Type": "YYYY"
}
}
когда я пытался прочитать payload.Record.Type хэш, freemarker считывает строку в payload.Record.Color.Type и выдает следующую ошибку.
Ошибка при запуске шаблона. Ожидается хэш, но его значение оценивается как строка (обертка: f.t.SimpleScalar):
Ищу несколько предложений, чтобы избавиться от этого.