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传输
posted @ 2016-12-11 16:48  jackieha  阅读(151)  评论(0)    收藏  举报