[
https://issues.apache.org/jira/browse/TAP5-2747?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ben Weidig reassigned TAP5-2747:
--------------------------------
Assignee: Ben Weidig
> KeyPath-based traversal of JSONCollection
> -----------------------------------------
>
> Key: TAP5-2747
> URL: https://issues.apache.org/jira/browse/TAP5-2747
> Project: Tapestry 5
> Issue Type: New Feature
> Components: tapestry-json
> Affects Versions: 5.8.2
> Reporter: Ben Weidig
> Assignee: Ben Weidig
> Priority: Minor
>
> As navigation nested JSONObject structures can be tedious, so I propose
> adding a String-based KeyPath traversal system.
> For example:
> {code:java}
> JSONObject json = ...
> // {
> // outer: { inner: "here" },
> // array: [
> // 1,
> // { innerArray: ["A", "B", "C"] },
> // ["Z", "Y", "X"]
> // ]
> // }
> var result = json.getByKeyPath("array[1].innerArray[5]?");
> // Equivalent to
> var result = json.getByKeyPath("array[1].innerArray[5]?");{code}
>
> The getByKeyPath method returns an Object, but the other types are available,
> too.
> The following types of keypaths should be supported:
> * JSONObject navigation, e.g. "outer.inner" -> "here"
> * JSONArray indices, e.g. "array[0]" -> 1
> * JSONArray indices without key, e.g. "array.[0]" -> 1
> * Optionality, e.g, "outer.nonExistant?" -> null
> I already have a proof-of-concept working. However, it requires some cleanup
> and a lot of testing before being ready.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)