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的更多相关文章

随机推荐

  1. GPUImage滤镜之锐化

    应用锐化工具可以快速聚焦模糊边缘,提高图像中某一部位的清晰度或者焦距程度,使图像特定区域的色彩更加鲜明. 在应用锐化工具时,若勾选器选项栏中的“对所有图层取样”复选框,则可对所有可见图层中的图像进行锐 ...

  2. 用Qt写软件系列一:QCacheViewer(浏览器缓存查看器)

    介绍 Cache技术广泛应用于计算机行业的软硬件领域.该技术既是人们对新技术探讨的结果,也是对当前软硬件计算能力的一种妥协.在浏览器中使用cache技术,可以大幅度提高web页面的响应速度,降低数据传 ...

  3. 【Win10】页面导航的实现

    注:本文基于 Windows 10 10240 及其 SDK 编写,若以后有变化,请以新版本为准. 页面导航我们是再熟悉不过了,浏览器.手机 App 大多都使用这种方式来展示内容.在 Windows ...

  4. java数据库查询类

    通用查询数据库辅助类,可实现任意查询语句的查询,还可以进行多结果集查询. 类的代码: package com.hongyuan.db; import java.math.BigDecimal; imp ...

  5. 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

    摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...

  6. 详细讲解PHP中缓存技术的应用

    PHP,一门最近几年兴起的web设计脚本语言,由于它的强大和可伸缩性,近几年来得到长足的发展,php相比传统的asp网站,在速度上有绝对的优势,想mssql转6万条数据php如需要40秒,asp不下2 ...

  7. 重新想象 Windows 8 Store Apps (64) - 后台任务: 开发一个简单的后台任务

    [源码下载] 重新想象 Windows 8 Store Apps (64) - 后台任务: 开发一个简单的后台任务 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 后 ...

  8. Discuz API的延伸

    作为社交平台来使用Discuz的话,UC_Server提供的那些数据接口是不够用的,我们还需要访问及操作用户的扩展数据. 基于UXF框架的rest_controller,很容易就可以实现API接口. ...

  9. 「C语言」单链表/双向链表的建立/遍历/插入/删除

    最近临近期末的C语言课程设计比平时练习作业一下难了不止一个档次,第一次接触到了C语言的框架开发,了解了View(界面层).Service(业务逻辑层).Persistence(持久化层)的分离和耦合, ...

  10. [TypeScript] TypeScript对象转JSON字符串范例

    [TypeScript] TypeScript对象转JSON字符串范例 Playground http://tinyurl.com/njbrnrv Samples class DataTable { ...