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