如何从 Freemarker 中的 JSON 获取值
How to get values from JSON in Freemarker
所以我有一个 JSON 文件或 html 请求,如下所示:
tuStatus:
0:
references: […]
progressBar: {…}
changeDeliveryPossible: false
arrivalTime: {…}
tuNo: "(here is usually a package number)"
owners: […]
history:
0:
date: "2021-11-11"
time: "12:52:04"
evtDscr: "Package has been deliverd."
address:
countryName: "Niederlande"
countryCode: "NL"
city: ""
我一直想访问 0
位置的 history
部分,并检查包裹是否已送达。要检查这一点,我需要读出 evtDscr
处的字符串。如果包裹已经送达,我想访问 date
和 time
字符串。
如何通过 freemarker 语言访问变量?
在评论中你说你得到了整个 JSON 作为一个字符串。那么,假设你有最新的 FreeMarker 版本,你可以使用 ?eval_json
:
<#assign someParsed = someString?eval_json>
现在您使用 someParsed.tuStatus[0].history[0].evtDscr == "Package has been deliverd."
这样的表达式。 (虽然我猜 evtDscr
值不是很可靠...就像有人修正了其中的拼写错误(应该是“交付ed”),比较不会'没用。)
所以我有一个 JSON 文件或 html 请求,如下所示:
tuStatus:
0:
references: […]
progressBar: {…}
changeDeliveryPossible: false
arrivalTime: {…}
tuNo: "(here is usually a package number)"
owners: […]
history:
0:
date: "2021-11-11"
time: "12:52:04"
evtDscr: "Package has been deliverd."
address:
countryName: "Niederlande"
countryCode: "NL"
city: ""
我一直想访问 0
位置的 history
部分,并检查包裹是否已送达。要检查这一点,我需要读出 evtDscr
处的字符串。如果包裹已经送达,我想访问 date
和 time
字符串。
如何通过 freemarker 语言访问变量?
在评论中你说你得到了整个 JSON 作为一个字符串。那么,假设你有最新的 FreeMarker 版本,你可以使用 ?eval_json
:
<#assign someParsed = someString?eval_json>
现在您使用 someParsed.tuStatus[0].history[0].evtDscr == "Package has been deliverd."
这样的表达式。 (虽然我猜 evtDscr
值不是很可靠...就像有人修正了其中的拼写错误(应该是“交付ed”),比较不会'没用。)