[
https://issues.apache.org/jira/browse/JXPATH-168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14038067#comment-14038067
]
Michele Vivoda commented on JXPATH-168:
---------------------------------------
I think this is similar to JXPATH-164, if you write {{vs\[*\]}} it is just the
first 'child element' to be tested, since the order is alphabetical is the
{{a}} that is tested and when is {{false}} the test fails and the {{vs}} is not
included
You can probably get the result you expect using: {{vs\[p\]}}
> Iterator on JSON skips nodes that have a "false" property
> ---------------------------------------------------------
>
> Key: JXPATH-168
> URL: https://issues.apache.org/jira/browse/JXPATH-168
> Project: Commons JXPath
> Issue Type: Bug
> Affects Versions: 1.3
> Environment: Java 1.7
> Reporter: Yoram
> Labels: JSON, path, skipped
>
> We have a JSON response, that has some properties that have a value of
> "false", but other properties are OK. When iterating on all the nodes, the
> mentioned ones are ignored.
> See code below. When run, only the second node is printed. Changing the first
> "false" to "true" causes the first node to be printed as well.
> Is it a bug, or do we miss something in the format?
> Thanks
> public void testJXPathIssue() {
> final String result = "{\"abc\":\"12:34\",\"vs\":[" +
> "{\"p\": \"12\", \"a\": false}," +
> "{\"p\": \"34\", \"a\": true}]}";
> Reader reader = new StringReader(result);
> Object obj = null;
> try {
> obj = JSONValue.parseWithException(reader);
> CompiledExpression exp = JXPathContext.compile("./vs[*]");
> JXPathContext xpathRootContext = JXPathContext.newContext(obj);
> Iterator i = exp.iteratePointers(xpathRootContext);
> while (i.hasNext()) {
> Pointer item = (Pointer) i.next();
> System.out.println("Item = " + item);
> }
> } catch (IOException e) {
> e.printStackTrace();
> } catch (ParseException e) {
> e.printStackTrace();
> }
> }
--
This message was sent by Atlassian JIRA
(v6.2#6252)