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