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. Week3 博客阅读感想和代码复审

    一.关于博客阅读感想 阅读了十多篇老程序员(大多在计算机相关行业工作超过10年)关于自身经历的博客,很有感触.这里一方面总结一下看博客的收获,另一方面写点自己的感受. 首先,这些博客不少涉及到了两大类 ...

  2. (三)XmlHelper

    [转]http://blog.csdn.net/u011866450/article/details/50373222 using System.Xml; using System.Data; nam ...

  3. Unity3D入门基本概念整理

    1. (1)在场景中添加资源 只需单击工程视图 (Project View) 中的网格(Mesh)并拖动至层级视图 (Hierarchy) 或场景视图 (Scene View),便可将其添加至场景 ( ...

  4. javaweb学习总结(三十二)——JDBC学习入门

    一.JDBC相关概念介绍 1.1.数据库驱动 这里的驱动的概念和平时听到的那种驱动的概念是一样的,比如平时购买的声卡,网卡直接插到计算机上面是不能用的,必须要安装相应的驱动程序之后才能够使用声卡和网卡 ...

  5. Visual Studio《加载此属性页时出错》的解决办法

    打开aspx页面时不能切换到设计视图,vs 2008工具箱中无控件.打开vs 2008的工具>选项>HTML设计器时提示:加载此属性页时出错 有时还会有其它错误提示,比如打开一个Windo ...

  6. [转]PDO防注入原理分析以及使用PDO的注意事项

    原文:http://zhangxugg-163-com.iteye.com/blog/1835721 好文章不得不转. 我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答 ...

  7. 容器---List和AbstractList

    一.前言 前面我们介绍了Collection及其抽象实现,在JAVA的容器体系里,由Collection派生出来的有两大体系,即List和Map.本文以及后续文章将重点分析List体系.本文将重点分析 ...

  8. 机器学习实战 - 读书笔记(12) - 使用FP-growth算法来高效发现频繁项集

    前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第12章 - 使用FP-growth算法来高效发现频繁项集. 基本概念 FP-growt ...

  9. IIS减少工作线程阻塞的方法

    IIS的工作进程(w3wp.exe)只提供了有限的工作线程(Work Thread)来处理请求.如果这些线程都因为要等待长时间运行的任务而阻塞,则运行时会将新来的请求排队,而不是立即执行,Web服务器 ...

  10. 通过GPS数据反向地理信息编码, 得到当前位置信息

    检查可用性 这属于基础知识, 不赘述, 总的来说,你的设备的支持要打开, 添加CoreLocation的framework, 引用头文件, 添加委托,然后, 好的实践是在使用前编程检查相关可用性: - ...