代码拉取完成,页面将自动刷新
request1.result[*].relTickers[0].tickerId
表达式兼容问题$..[?(@.treePath)]
表达式的兼容问题public enum BookType {
NOVEL(2,"小说"),
CLASSICS(3,"名著"),
;
//现在加了支持这个
@ONodeAttr public final int code; //使用 code 做为序列化的字段
public final String des;
BookType(int code, String des){this.code=code; this.des=des;}
}
//原来只支持这个
public class Book {
String name;
BookType type;
@ONodeAttr(serialize=false) String author; //不序列化
@ONodeAttr(format="yyyy-MM-dd") Date releaseTime; //格式化时间输出
}
$.[?(@.field == 'l1-field-1')].children[?(@.field == 'l2-field-1')]
兼容性$[?(@.field == 'l1-field-1')].children[?(@.field == 'l2-field-1')].fields[*]
兼容性$..*[?(@.id)]
可能出现 value 项$.*.*.*
的兼容性示例:
@Test
public void case1(){
ONode oNode = new ONode();
oNode.selectOrNew("$.orders[0].price").val(500);
System.out.println(oNode.toJson());
//{"orders":[{"price":500}]}
assert "{\"orders\":[{\"price\":500}]}".equals(oNode.toJson());
oNode.selectOrNew("$.orders[10].price").val(600);
System.out.println(oNode.toJson());
//{"orders":[{"price":500},null,null,null,null,null,null,null,null,null,{"price":600}]}
oNode.select("$.orders").forEach(n->n.asObject());
System.out.println(oNode.toJson());
//{"orders":[{"price":500},{},{},{},{},{},{},{},{},{},{"price":600}]}
}