JSON JavaScript Object Natation
JavaScript 的对象表现形式,目前已经发展成一种轻量级的数据交换格式。
特点:完全独立于语言的文本格式,跨平台!有结构的,方便人和机器解析。
实用场景:不同语言之间的数据传递(JSON就是String,但是它是有格式的)
JSON对象的语法结构:{"key":"value","key":"value"}
JSON数组表现结构:[{"key":"value","key":"value"},{"key":"value","key":"value"}]
JSONObject 可以自定义对象;JSONArray可以自定义数组;
对象里面可以放数组,数组里面可以放对象!{
"key":[{"key":"value"},{"key":"value"}]}
自关联解决方案:通过设置JsonConfig来过滤相应的参数
JsonConfig config = new JsonConfig();
1.设置需要排除那些字段,例如排除密码字段
config.setExcludes(new String[]{"pwd"});
2.设置如果有字段是自关联则过滤
config.setCycleDelectionStrategy(CycleDelectionStategy.STRTCT/LENIENT/NOPROP);
STRTCT:缺省值,是否自关联都要转化;LENIENT:如果有自关联对象,则值设置为null;
NOPROP:如果有自关联则忽略属性
Date格式处理:通过自定义日期的处理类,来格式化日期数据。(处理类必须实现JsonValueProcessor接口)
confg.registerJsonValueProcessor(Date.class,jsonValueProcessor);
转化static字段:
1.静态属性设置非静态getter/setter方法(不建议)
2.采用map或者自己构建JSON格式(JSONObject)
JSON所需jar包:
commons-beanutils-1.8.0.jar
commons-collections-3.2.1.jar
commons-long-2.5.jar
commons-logging-1.1.1.jar
ezmorph-1.0.6.jar
json-lib-2.4-jdk15.jar