FinanceJson
FinanceJson, 对Json的包装.底层使用jackson实现。
1. 生成节点
(1)在某个路径下添加某个节点
FinanceJson financeJsonInfo = new FinanceJson();
FinanceJsonUtil.addNode(financeJsonInfo, "terminal.uid", new StringNode("dasd"));
FinanceJsonUtil.addNode(financeJsonInfo, "terminal.gid", new StringNode("g213"));
FinanceJsonUtil.addNode(financeJsonInfo, "terminal.pid", new StringNode("p213"));
System.out.println(financeJsonInfo.toString());
输出:
{
"terminal" : {
"uid" : "dasd",
"gid" : "g213",
"pid" : "p213"
}
}
(2) 添加某个实体类作为节点
<1> 不指定路径, 路径为 "类名.属性名", 类名首字母小写。 可嵌套递归
FinanceJson financeJsonInfo = new FinanceJson();
Cow cow = new Cow();
cow.setCowName("coco");
cow.setCowWWW("cowww");
FinanceJsonUtil.addNodeByPojo(financeJsonInfo, cow);
System.out.println(financeJsonInfo.toString()); class Cow{
private String cowName;
private String cowWWW;
setter..getter..略
}
输出:
{
"cow" : {
"cowName" : "coco",
"cowWWW" : "cowww"
}
}
<2> 指定路径, "指定路径.类属性名"
FinanceJson financeJsonInfo = new FinanceJson();
Cow cow = new Cow();
cow.setCowName("coco");
cow.setCowWWW("cowww");
FinanceJsonUtil.addNodeByPojo(financeJsonInfo, "terminal.cow", cow);
System.out.println(financeJsonInfo.toString());
输出:
{
"terminal" : {
"cow" : {
"cowName" : "coco",
"cowWWW" : "cowww"
}
}
}
2. 获取节点
初始化数据:
FinanceJson financeJson = new FinanceJson();
FinanceJsonUtil.addNode(financeJson, "terminal.uid", new StringNode("dasd"));
FinanceJsonUtil.addNode(financeJson, "terminal.gid", new StringNode("g213"));
FinanceJsonUtil.addNode(financeJson, "terminal.pid", new StringNode("p213"));
Cow cow = new Cow();
cow.setCowName("coco");
cow.setCowWWW("cowww");
FinanceJsonUtil.addNodeByPojo(financeJson, cow);
System.out.println(financeJson.toString()); 数据格式:
{
"terminal" : {
"uid" : "dasd",
"gid" : "g213",
"pid" : "p213"
},
"cow" : {
"cowName" : "coco",
"cowWWW" : "cowww"
}
}
获取节点和属性:
// 获取节点
ValueNode terminalNode = financeJson.getProperty("terminal");
System.out.println("节点json:\n" + terminalNode.toJson());
//获取某个属性
String uid = terminalNode.firstChild("uid").toString();
System.out.println("uid属性值:" + uid);
//按照路径获取某个属性
String gid = financeJson.getProperty("terminal.gid").toString();
System.out.println("gid属性值:" + gid);
输出:
节点json:
{
"uid" : "dasd",
"gid" : "g213",
"pid" : "p213"
}
uid属性值:dasd
gid属性值:g213
3. 注意的地方
(1) 可以作为RPC调用参数
(2) 不可以用于qmq传输
FinanceJson的更多相关文章
随机推荐
- AutoTransformHandler
public static ObservableCollection<F> Transform<T, F>(List<T> target) where F : ne ...
- Requested registry access is not allowed(不允许所请求的注册表访问权)
尝试创建自定义事件日志时,将会收到“Requested registry access is not allowed(不允许所请求的注册表访问权)”错误消息 EventLog.CreateEventS ...
- 很震撼的HTML5视频播放器,电影院的感觉
效果很震撼!有电影院的感觉了.呵呵. 看了下代码,依然是 在一个canvas里嵌入<video>然后getImageData 点击这里查看效果 代码: var canvas = docum ...
- WPF ListView 选中问题
WPF ListView 选中问题 摘自:http://www.cnblogs.com/BBHor/archive/2013/04/28/VisualTreeHelper-PreviewMouseD ...
- ASP.Net中Session失效的一种编程思路
在写一个客户的B/S结构应用程序时,突然发现一个技巧,不知道是否是MS的一个BUG,给相关的有研究的朋友原先考虑写一个检查Session的类,Session失效后,必须转向登陆页面,可每一个调用该类的 ...
- 继续寻找app开发的技术方案
大概12年下半年开始,才有app开发已经来到身边的感觉. 但也一直只是感觉,没想到自己得亲身上阵. 由于要一个人做(帮朋友倒腾倒腾),而且要跨平台,而且前后台都要弄,而且时间有限. 最终选了web方式 ...
- jsp中自定义Taglib案例
一.使用TagSupport类案例解析 1.自定义Tag使用jdbc连接mysql数据库 1.1定义标签处理器类 package com.able.tag; import java.sql.Conne ...
- [moka学习笔记]yii2.0 rules的用法(收集,不定期更新)
public function rules(){ return [ ['title','required','message'=>'标题不能为空'], ['title','string','mi ...
- DOM笔记整理及应用实例
一.前言 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model).HTML DOM 模型被构造为对象的树 通过可编程的对象模型,JavaScript 获得了足够的 ...
- Webform(简单控件、复合控件)
一.简单控件: 1.label控件 <asp:Label ID="Label1" runat="server" Text="账 号:" ...