博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Atitit.json类库的设计与实现 ati json lib
阅读量:4992 次
发布时间:2019-06-12

本文共 2101 字,大约阅读时间需要 7 分钟。

Atitit.json类库的设计与实现 ati json lib 

 

 

1目前jsonlib库可能有问题,可能版本冲突,抛出ex1

2解决之道:1

2.1. 自定义json解析库,使用多个复合的json 解析复合的引擎1

3几个要点2

3.1. 复合结构的转换2

3.2. 没有get set方法的属性自动忽略,而不抛出异常2

3.3. 时间格式的转换2

3.4. Api使用json lib,以及gson的也一个2

3.5. 如果要将泛型转换成json2

4普通的的json解析器 Jackson类库 Google Gson JSON-lib类库3

5Api3

5.1. toJson       xxx.fromObject(x).toString(2)3

5.2. 字符串转成对象   T fromJson(String str, Class<T> type)  fromObject(object)3

6Teste code3

 

 

 

1. 目前jsonlib库可能有问题,可能版本冲突,抛出ex

2. 解决之道:

2.1. 自定义json解析库,使用多个复合的json 解析复合的引擎

 

 

3. 几个要点

3.1. 复合结构的转换

3.2. 没有get set方法的属性自动忽略,而不抛出异常

3.3. 时间格式的转换

3.4. Api使用json lib,以及gson的也一个

 作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

 

3.5. 如果要将泛型转换成json

1、如,一个Map是这样的,Map<String, Map<String, List<String>>> map,如果这样使用gson.toJson(map)得不到正确的结果的话,那么,我们可能要这样使用,gson.toJson(map,new TypeToken<Map<String, Map<String, List<String>>>>(){}.getType())

 

 

解决方案:

  1、如果涉及到关联属性的对象,转换前可以先把它的关联属性转换并放入一个新建的Map或者List,然后按照层次结构重复这样的操作一层一层的往上转,这样,一般可以解决问题,但是,如果关联的层次比较深,做起来就很麻烦了。上面提到的问题3就可以用这种方式解决。

 

 

 

4. 普通的的json解析器 Jackson类库 Google Gson JSON-lib类库

 

 

5. Api  

5.1. toJson       xxx.fromObject(x).toString(2)

5.2. 字符串转成对象   T fromJson(String str, Class<T> type)  fromObject(object)

 

6. Teste code

 

package com.attilax.json;

 

import java.util.Date;

import java.util.HashMap;

import java.util.Map;

 

import com.attilax.core;

import com.google.gson.Gson;

 

public class JSONObject {

 

public JSONObject(Map m) {

this.obj = m;

}

 

public static void main(String[] args) {

 

Map m = new HashMap();

m.put("d"new Date());

// m.put(key, value)

 

JSONObject.fromObject(m).toString(2);

}

 

private String toString(int i) {

 

// if(i==2) //fmt

{

try {

return net.sf.json.JSONObject.fromObject(this.obj).toString(i);

catch (Exception e) {

 

try {

// 创建一个gson对象

Gson gson = new Gson();

 

// 转换成json

String json = gson.toJson(this.obj);

return json;

catch (Exception e2) {

return JsonUtil4jackjson.buildNormalBinder().toJson(

this.obj);

}

 

}

 

}

 

}

 

public Object obj;

 

private static JSONObject fromObject(Map m) {

// TODO Auto-generated method stub

return new JSONObject(m);

}

 

}

 

 

 

 

转载于:https://www.cnblogs.com/attilax/p/5963572.html

你可能感兴趣的文章
“-fembed-bitcode is not supported on versions of iOS prior to 6.0” 错误
查看>>
[转]jquery mobile中redirect重定向问题
查看>>
[django]表格的添加与删除实例(可以借鉴参考)
查看>>
Mockito一个采用Java编写用于单元测试的Mocking框架
查看>>
把elipse非maven的Struts2+Spring+Ibatis项目导入Idea中
查看>>
SVGImageView
查看>>
Android UI 优化 使用<include/>和 <merge />标签
查看>>
linux命令--使用fsck修复文件系统
查看>>
洛谷 P2324 [SCOI2005]骑士精神
查看>>
leetcode(64)最小路径和
查看>>
Select文字居右显示
查看>>
mycat操作MySQL第一篇:全局表
查看>>
MySQL数据库表分区
查看>>
python多个装饰器的执行顺序
查看>>
岗顶-一图一世界
查看>>
一步步构造自己的vue2.0+webpack环境
查看>>
分页类
查看>>
Python装饰器的个人小理解
查看>>
为什么百万医疗险越来越多,到底选哪款?
查看>>
如何检测 51单片机IO口的下降沿
查看>>