`
zl584521
  • 浏览: 5110 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Json-lib 如何转换日期格式的字段 json-->java

阅读更多
json-lib-2.2可以为对应的class注册解析类,记住一定要2.2,2.1有同步问题。切记切记。
写一个DateJsonValueProcessor.java

package anni.core.web.json;

import java.text.DateFormat;
import java.text.SimpleDateFormat;

import java.util.Date;

import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;


/**
 * @author Lingo
 * @since 2007-08-02
 */
public class DateJsonValueProcessor implements JsonValueProcessor {
    public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd";
    private DateFormat dateFormat;

    /**
     * 构造方法.
     *
     * @param datePattern 日期格式
     */
    public DateJsonValueProcessor(String datePattern) {
        try {
            dateFormat = new SimpleDateFormat(datePattern);
        } catch (Exception ex) {
            dateFormat = new SimpleDateFormat(DEFAULT_DATE_PATTERN);
        }
    }

    public Object processArrayValue(Object value, JsonConfig jsonConfig) {
        return process(value);
    }

    public Object processObjectValue(String key, Object value,
        JsonConfig jsonConfig) {
        return process(value);
    }

    private Object process(Object value) {
        return dateFormat.format((Date) value);
    }
}



然后在bean -> json的时候



    /**
     * write.
     *
     * @param bean obj
     * @param writer 输出流
     * @param excludes 不转换的属性数组
     * @param datePattern date到string转换的模式
     * @throws Exception 写入数据可能出现异常
     */
    public static void write(Object bean, Writer writer,
        String[] excludes, String datePattern) throws Exception {
        JsonConfig jsonConfig = configJson(excludes, datePattern);

        JSON json = JSONSerializer.toJSON(bean, jsonConfig);

        json.write(writer);
    }

    /**
     * 配置json-lib需要的excludes和datePattern.
     *
     * @param excludes 不需要转换的属性数组
     * @param datePattern 日期转换模式
     * @return JsonConfig 根据excludes和dataPattern生成的jsonConfig,用于write
     */
    public static JsonConfig configJson(String[] excludes,
        String datePattern) {
        JsonConfig jsonConfig = new JsonConfig();
        jsonConfig.setExcludes(excludes);
        jsonConfig.setIgnoreDefaultExcludes(false);
        jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
        jsonConfig.registerJsonValueProcessor(Date.class,
            new DateJsonValueProcessor(datePattern));

        return jsonConfig;
    }
分享到:
评论
1 楼 bplyn 2008-04-24  
能不能讲一下怎么用呀。

相关推荐

    angular-json-editor:以角度编辑任何 JSON 对象的指令

    link rel="stylesheet" href="./SOURCE_TO_LIB/angular-json-editor.css"/> [removed][removed] 包含 json-editor 指令作为对 angular 模块的依赖 angular.module("myapp", ["angularJsonEditor

    json的动态和静态过滤

    maven工程demo,包括jackson包和json-lib包的使用,使用jackson注解的方式过滤部分字段,json-libjson-lib动态过滤部分字段

    使用Ajax或Easyui等框架时的Json-lib的处理方案

    普通手动配置方法比较笨拙,每次需要根据字段名逐个配置,因此也无法再其他对象上使用,降低了代码的重用性,使用json-lib工具可以实现自动处理,针对不同的对象又不同的处理措施,大大提高了处理效率和代码的重用性...

    json-schema-defaults:从 JSON Schema 中的默认值生成 JSON 配置

    安装新产品经理npm install json-schema-defaults 凉亭bower install json-schema-defaults 手动的下载用法CommonJS (node.js) var defaults = require ( './path/to/index.js' ) ;defaults ( { ... } ) ; 要求JS //...

    json-lib出现There is a cycle in the hierarchy解决办法

    设置JSON-LIB让其过滤掉引起循环的字段。 Java代码 代码如下: JsonConfig config = new JsonConfig(); config.setIgnoreDefaultExcludes(false); config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT)...

    request-json-validator

    request-json-validator request-json-validator使用分析json验证,但检查空白,如果无效则抛出节点错误。依存关系jsonValidator 验证使用请求比较和之后的json文件。 该函数检查必填字段,并引发json错误,并将json...

    Json库的使用总结

    1、 如何将List变成Json字符串 2 2、 如何将一个对象变成Json字符串 2 3、 如何将一个对象的Json字符串变成该对象实例 2 4、 如何将一个List字符串,变成List实例 2 ...同进提供所使用的json-lib-2.2.1-jdk15.jar

    form-data-json:将html表单转换为json对象或从json对象填充表单

    表单数据Json-往返JSON的表单输入值 零依赖性的跨浏览器库,可以轻松地从json对象获取或设置表单输入值。 它可以处理所有现有的输入类型,包括多维数组名称和文件输入。 它与本机相似,但具有一些优点:以多维对象的...

    sales-engine

    销售引擎提交消息 jsdoc ... 新 SE 的功能 [X] -> 获取 [X] -> 插值 [X] -> 字段 [X] 5.4。 使旧驱动程序适应新模式。 [X] 5.5。 将驱动程序的类型更改为序列(更新类型库)[-] Firebase 集成 (FE) [-]流{ lodash、ram

    sara-schema:包含SaraAlert JSON模式和验证器,可促进通过受监视者的更新

    莎拉图式包含json-schema ,该json-schema定义了受信任和不受信任的应用程序之间的数据结构通信。 有关json-schema更多信息,请访问 该存储库还包含一个Ruby gem,该宝石将模式公开给软件,以用于验证已发送或已接收...

    validation-lib

    相应地调整package.json的各个字段。 笑话 开玩笑测试设置为与npm test或yarn test一起npm test 。 持续集成 GitHub动作 默认情况下,添加了两个操作: main ,它安装带有缓存,棉绒,测试的deps,并在针对Node和...

    lib-Google_App_Script_LibKit-GAScripts

    lib-Google_App_Script_LibKit-Scripts (阿尔法尚未) 包含一组有用的常用工具和类,用于: App_Utils: 生成唯一记录 ID。... 字段定义映射器 -> 电子表格列数。 ... 提示:使用 Unit_Tests 来评估和调试修改。

    pve2-php:通过 PVE2 API(和 PVE2-API-PHP-Client lib)进行 Proxmox VE 管理的 Web 界面; 使用 AngularJS

    要求 以下要求是外部依赖项。 您必须单独提供和维护它们。 ... 卷曲扩展 SSL 扩展 要连接的 Proxmox VE 2.0+... 其余的由文本区域提供服务,其中可以输入标准 JSON 以与未实现的端点进行手动交互。 无论如何,要使用它,

    多玩前端工作流grunt-workflow.zip

    grunt-workflow 是一个帮助前端开发工程师简化工作的工具,它的主要功能是: ... 在grunt-init lego时注意以下字段的填写,或者在初始化后的 package.json 中修改对应字段 标签:grunt

    odoo-rpc-client:Odoo RPC客户端库

    该项目提供类似于Odoo内部代码的接口,以对隐藏XML-RPC或JSON-RPC的Odoo对象执行操作。 特征Python 3.5+支持您可以在任何OpenERP / Odoo对象上调用任何公共方法,包括:读取,搜索,写入,取消链接等进行了大量速度...

    coffee-script-precompiler

    使用以下一项或两项向kanso.json添加一个coffee-script字段:用于搜索 coffeescript 模块的文件夹列表和用于搜索 coffeescript 附件的文件夹列表。 "coffee-script" : { "modules" : [ "lib" , "tests" ] , ...

    Vegeta:HTTP负载测试工具和库。 超过9000!-开源

    JSON格式使与动态生成目标的程序的集成更加容易。 每个目标在其各自的行中都是一个JSON对象。 方法和URL字段是必填字段。 如果存在,则body字段必须为base64编码。 生成的JSON模式详细定义了格式。

    engine-dependencies:根据您使用的Node版本安装npm依赖项

    只需在package.json的engineDependencies字段中定义您的依赖项: {" name " : " my-lib " ," version " : " 1.0.0 " ," engineDependencies " : {" node " : {" 0.12.x " : {" devDependencies " : {" semver " : ...

    微信小程序-微信小程序里的listview,内置了上拉刷新下拉加载更多的功能

    3.根据你的网络请求的字段特点修改netUtil和app.js中的相应字段. 4.页面的js引入: var lvUtil=require("../../utils/lvUtil.js"); 只需要在页面的onLoad方法中调用方法:lvUtil.initLv. 其他下拉刷新,上拉加载更多的...

    form-serialize

    将表单序列化为JSON。 受dominicbarnes / form-serialize的大力启发,但可与npm一起使用,并且本身不包含transform功能。 用法 serialize ( form ) == // {username: 'user1', password: 'my password'} < ...

Global site tag (gtag.js) - Google Analytics