The
SetGetPlugin already supports a JSON path to set and get a JSON variable, such as
%GET{ projects[1].key }%
This enhancement supports wildcards for the array index, such as
%GET{ projects[*].key }%
. The result is a JSON array containing all indicated structures.
Test case:
-
%SET{ projects = [ { "name": "Prj A", "key": "PrjA", "owner": { "name": "Aaron", "id": 1 } }, { "name": "Prj B", "key": "PrjB", "owner": { "name": "Boris", "id": 2 } }, { "name": "Prj C", "key": "PrjC", "owner": { "name": "Charlie", "id": 3 } }, { "name": "Prj D", "MISSING-key": "PrjD", "owner": { "name": "Darwin", "id": 4 } } ] }%
/[{"owner":{"name":"Aaron","id":1},"name":"Prj A","key":"PrjA"},{"owner":{"name":"Boris","id":2},"name":"Prj B","key":"PrjB"},{"owner":{"name":"Charlie","id":3},"name":"Prj C","key":"PrjC"},{"owner":{"name":"Darwin","id":4},"MISSING-key":"PrjD","name":"Prj D"}]/
-
%GET{ projects[2] }%
/{"owner":{"name":"Charlie","id":3},"name":"Prj C","key":"PrjC"}/
-
%GET{ projects[2].name }%
/Prj C/
-
%GET{ projects[*] }%
/[{"owner":{"name":"Aaron","id":1},"name":"Prj A","key":"PrjA"},{"owner":{"name":"Boris","id":2},"name":"Prj B","key":"PrjB"},{"owner":{"name":"Charlie","id":3},"name":"Prj C","key":"PrjC"},{"owner":{"name":"Darwin","id":4},"name":"Prj D","MISSING-key":"PrjD"}]/
-
%GET{ projects[*].name }%
/["Prj A","Prj B","Prj C","Prj D"]/
-
%GET{ projects[*].key }%
/["PrjA","PrjB","PrjC",null]/
-
%GET{ projects[*].owner }%
/[{"name":"Aaron","id":1},{"name":"Boris","id":2},{"name":"Charlie","id":3},{"name":"Darwin","id":4}]/
-
%GET{ projects[*].owner.name }%
/["Aaron","Boris","Charlie","Darwin"]/
-
%GET{ projects[*].owner.id }%
/[1,2,3,4]/
--
TWiki:Main/PeterThoeny
- 2015-07-09