FinanceJson
FinanceJson, 对Json的包装.底层使用jackson实现。
1. 生成节点
(1)在某个路径下添加某个节点
1 FinanceJson financeJsonInfo = new FinanceJson();
2 FinanceJsonUtil.addNode(financeJsonInfo, "terminal.uid", new StringNode("dasd")); 3 FinanceJsonUtil.addNode(financeJsonInfo, "terminal.gid", new StringNode("g213")); 4 FinanceJsonUtil.addNode(financeJsonInfo, "terminal.pid", new StringNode("p213")); 5 System.out.println(financeJsonInfo.toString());
输出:
{ "terminal" : { "uid" : "dasd", "gid" : "g213", "pid" : "p213" } }
(2) 添加某个实体类作为节点
<1> 不指定路径, 路径为 "类名.属性名", 类名首字母小写。 可嵌套递归
1 FinanceJson financeJsonInfo = new FinanceJson(); 2 Cow cow = new Cow(); 3 cow.setCowName("coco"); 4 cow.setCowWWW("cowww"); 5 FinanceJsonUtil.addNodeByPojo(financeJsonInfo, cow); 6 System.out.println(financeJsonInfo.toString()); 7 8 class Cow{ 9 private String cowName; 10 private String cowWWW; 11 setter..getter..略 12 }
输出:
{ "cow" : { "cowName" : "coco", "cowWWW" : "cowww" } }
<2> 指定路径, "指定路径.类属性名"
1 FinanceJson financeJsonInfo = new FinanceJson(); 2 Cow cow = new Cow(); 3 cow.setCowName("coco"); 4 cow.setCowWWW("cowww"); 5 FinanceJsonUtil.addNodeByPojo(financeJsonInfo, "terminal.cow", cow); 6 System.out.println(financeJsonInfo.toString());
输出:
{ "terminal" : { "cow" : { "cowName" : "coco", "cowWWW" : "cowww" } } }
2. 获取节点
初始化数据:
1 FinanceJson financeJson = new FinanceJson(); 2 FinanceJsonUtil.addNode(financeJson, "terminal.uid", new StringNode("dasd")); 3 FinanceJsonUtil.addNode(financeJson, "terminal.gid", new StringNode("g213")); 4 FinanceJsonUtil.addNode(financeJson, "terminal.pid", new StringNode("p213")); 5 Cow cow = new Cow(); 6 cow.setCowName("coco"); 7 cow.setCowWWW("cowww"); 8 FinanceJsonUtil.addNodeByPojo(financeJson, cow); 9 System.out.println(financeJson.toString());
数据格式:
{ "terminal" : { "uid" : "dasd", "gid" : "g213", "pid" : "p213" }, "cow" : { "cowName" : "coco", "cowWWW" : "cowww" } }
获取节点和属性:
1 // 获取节点 2 ValueNode terminalNode = financeJson.getProperty("terminal"); 3 System.out.println("节点json:\n" + terminalNode.toJson()); 4 //获取某个属性 5 String uid = terminalNode.firstChild("uid").toString(); 6 System.out.println("uid属性值:" + uid); 7 //按照路径获取某个属性 8 String gid = financeJson.getProperty("terminal.gid").toString(); 9 System.out.println("gid属性值:" + gid);
输出:
节点json: { "uid" : "dasd", "gid" : "g213", "pid" : "p213" } uid属性值:dasd gid属性值:g213
3. 注意的地方
(1) 可以作为RPC调用参数
(2) 不可以用于qmq传输

浙公网安备 33010602011771号