`
weina
  • 浏览: 144942 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

json转换

    博客分类:
  • java
阅读更多
/** *//**
* Copyright (c) linkwise 2007-2009 corporation. 
* All rights reserved
*/
package com.linghui.common.util;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.CycleDetectionStrategy;

import com.linghui.common.util.DateUtil;
import com.linghui.common.util.jsonutil.DateJsonValueProcessor;

/** *//**
* @author </br> <a href="mailto:fx19800215@163.com"> robert.feng</a>
*
*/
public class JsonUtil ...{

    /** *//**
     * 从一个JSON 对象字符格式中得到一个java对象
     * @param jsonString
     * @param pojoCalss
     * @return
     */
    public static Object getObject4JsonString(String jsonString,Class pojoCalss)...{
        Object pojo;
        JSONObject jsonObject = JSONObject.fromObject( jsonString ); 
        pojo = JSONObject.toBean(jsonObject,pojoCalss);
        return pojo;
    }
   
   
   
    /** *//**
     * 从json HASH表达式中获取一个map,改map支持嵌套功能
     * @param jsonString
     * @return
     */
    public static Map getMap4Json(String jsonString)...{
        JSONObject jsonObject = JSONObject.fromObject( jsonString ); 
        Iterator  keyIter = jsonObject.keys();
        String key;
        Object value;
        Map valueMap = new HashMap();

        while( keyIter.hasNext())
        ...{
            key = (String)keyIter.next();
            value = jsonObject.get(key);
            valueMap.put(key, value);
        }
       
        return valueMap;
    }
   
   
    /** *//**
     * 从json数组中得到相应java数组
     * @param jsonString
     * @return
     */
    public static Object[] getObjectArray4Json(String jsonString)...{
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        return jsonArray.toArray();
       
    }
   
   
    /** *//**
     * 从json对象集合表达式中得到一个java对象列表
     * @param jsonString
     * @param pojoClass
     * @return
     */
    public static List getList4Json(String jsonString, Class pojoClass)...{
       
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        JSONObject jsonObject;
        Object pojoValue;
       
        List list = new ArrayList();
        for ( int i = 0 ; i<jsonArray.size(); i++)...{
           
            jsonObject = jsonArray.getJSONObject(i);
            pojoValue = JSONObject.toBean(jsonObject,pojoClass);
            list.add(pojoValue);
           
        }
        return list;

    }
   
    /** *//**
     * 从json数组中解析出java字符串数组
     * @param jsonString
     * @return
     */
    public static String[] getStringArray4Json(String jsonString)...{
       
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        String[] stringArray = new String[jsonArray.size()];
        for( int i = 0 ; i<jsonArray.size() ; i++ )...{
            stringArray[i] = jsonArray.getString(i);
           
        }
       
        return stringArray;
    }
   
    /** *//**
     * 从json数组中解析出javaLong型对象数组
     * @param jsonString
     * @return
     */
    public static Long[] getLongArray4Json(String jsonString)...{
       
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        Long[] longArray = new Long[jsonArray.size()];
        for( int i = 0 ; i<jsonArray.size() ; i++ )...{
            longArray[i] = jsonArray.getLong(i);
           
        }
        return longArray;
    }
   
    /** *//**
     * 从json数组中解析出java Integer型对象数组
     * @param jsonString
     * @return
     */
    public static Integer[] getIntegerArray4Json(String jsonString)...{
       
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        Integer[] integerArray = new Integer[jsonArray.size()];
        for( int i = 0 ; i<jsonArray.size() ; i++ )...{
            integerArray[i] = jsonArray.getInt(i);
           
        }
        return integerArray;
    }
   
    /** *//**
     * 从json数组中解析出java Date 型对象数组,使用本方法必须保证
     * @param jsonString
     * @return
     */
    public static Date[] getDateArray4Json(String jsonString,String DataFormat)...{
       
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        Date[] dateArray = new Date[jsonArray.size()];
        String dateString;
        Date date;
       
        for( int i = 0 ; i<jsonArray.size() ; i++ )...{
            dateString = jsonArray.getString(i);
            date = DateUtil.stringToDate(dateString, DataFormat);
            dateArray[i] = date;
           
        }
        return dateArray;
    }
   
    /** *//**
     * 从json数组中解析出java Integer型对象数组
     * @param jsonString
     * @return
     */
    public static Double[] getDoubleArray4Json(String jsonString)...{
       
        JSONArray jsonArray = JSONArray.fromObject(jsonString);
        Double[] doubleArray = new Double[jsonArray.size()];
        for( int i = 0 ; i<jsonArray.size() ; i++ )...{
            doubleArray[i] = jsonArray.getDouble(i);
           
        }
        return doubleArray;
    }
   
   
    /** *//**
     * 将java对象转换成json字符串
     * @param javaObj
     * @return
     */
    public static String getJsonString4JavaPOJO(Object javaObj)...{
       
        JSONObject json;
        json = JSONObject.fromObject(javaObj);
        return json.toString();
       
    }
   
   
   
   
    /** *//**
     * 将java对象转换成json字符串,并设定日期格式
     * @param javaObj
     * @param dataFormat
     * @return
     */
    public static String getJsonString4JavaPOJO(Object javaObj , String dataFormat)...{
       
        JSONObject json;
        JsonConfig jsonConfig = configJson(dataFormat);
        json = JSONObject.fromObject(javaObj,jsonConfig);
        return json.toString();
       
       
    }
   
   
   
    /** *//**
     * @param args
     */
    public static void main(String[] args) ...{
        // TODO 自动生成方法存根

    }
   
    /** *//**
     * JSON 时间解析器具
     * @param datePattern
     * @return
     */
    public static JsonConfig configJson(String datePattern) ...{  
            JsonConfig jsonConfig = new JsonConfig();  
            jsonConfig.setExcludes(new String[]...{""});  
            jsonConfig.setIgnoreDefaultExcludes(false);  
            jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);  
            jsonConfig.registerJsonValueProcessor(Date.class,  
                new DateJsonValueProcessor(datePattern));  
         
            return jsonConfig;  
        } 
   
    /** *//**
     *
     * @param excludes
     * @param datePattern
     * @return
     */
    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;  
        } 

}




/** *//**
* linkwise
*/
package com.linghui.common.util.jsonutil;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

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



/** *//**
*  @author </br> <a href="mailto:fx19800215@163.com"> robert.feng</a>
*
*/
public class DateJsonValueProcessor implements JsonValueProcessor ...{

   
    public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd";  
    private DateFormat dateFormat;  

   
   
    /** *//** 
     * 构造方法. 
     * 
     * @param datePattern 日期格式 
     */ 
    public DateJsonValueProcessor(String datePattern) ...{  
         
        if( null == datePattern )
            dateFormat = new SimpleDateFormat(DEFAULT_DATE_PATTERN); 
        else
            dateFormat = new SimpleDateFormat(datePattern);
       
    }  

   
   
    /**//* (非 Javadoc)
     * @see net.sf.json.processors.JsonValueProcessor#processArrayValue(java.lang.Object, net.sf.json.JsonConfig)
     */
    public Object processArrayValue(Object arg0, JsonConfig arg1) ...{
        // TODO 自动生成方法存根
        return process(arg0);  
    }

    /**//* (非 Javadoc)
     * @see net.sf.json.processors.JsonValueProcessor#processObjectValue(java.lang.String, java.lang.Object, net.sf.json.JsonConfig)
     */
    public Object processObjectValue(String arg0, Object arg1, JsonConfig arg2) ...{
        // TODO 自动生成方法存根
        return process(arg1);  
    }
   
    private Object process(Object value) ...{  
        return dateFormat.format((Date) value);  
    }  


}
分享到:
评论

相关推荐

    json转换为SQL server建表脚本

    标题"json转换为SQL server建表脚本"涉及到的主要知识点包括: 1. JSON解析:首先,你需要理解如何在C#中解析JSON数据。C#提供了 Newtonsoft.Json 库(也称为 Json.NET),这是一个强大的JSON库,可以方便地将JSON...

    xml & json 转换工具

    在XML到JSON转换过程中,XStream可能首先用于将XML数据转换为Java对象,然后这些对象再由Json-lib处理成JSON格式。 XML到JSON的转换通常包括以下步骤: - 解析XML文档,将其转换为DOM(Document Object Model)树。...

    json转换jar包

    标题"json转换jar包"暗示了我们需要一个包含这些JSON处理库的JAR文件,以便在Java项目中进行JSON操作。这些库通常以JAR格式提供,便于集成到Java项目的类路径中。 描述提到"string与json转换需要的jar包",这表明...

    json转换jsonschema

    在JavaScript开发中,有时我们需要将JSON对象转换为JSON Schema,以便对数据进行验证。这在处理用户输入、API交互或者存储复杂数据结构时非常有用。`jsonToSchema`项目可能就是一个工具或库,用于帮助开发者实现这个...

    python:json转换

    而`trans-json2.py`则可能涉及到两种不同风格的JSON转换。其中一种可能是"pretty-print"风格,即格式化后的JSON,易于人类阅读,通过设置`indent`参数实现: ```python import json # JSON字符串 json_str = '{...

    JSON转换为JAVA对象及日期格式转换处理 -

    JSON转换为JAVA对象及日期格式转换处理 -

    Java中后台JSON转换包

    Java中的JSON转换是Web开发中常见的一种数据交互方式,它使得服务器端的数据能以轻量级的文本格式发送到客户端,比如JavaScript,从而方便前端进行处理。本篇将详细讲解如何在Java后台上使用JSON进行数据转换,并...

    json 转换为map

    在Java中,将JSON转换为Map是常见的操作,因为Map可以方便地与Java对象进行映射,便于进一步处理。`google-gson`库是Google提供的一个Java库,用于将Java对象转换为JSON格式,反之亦然。 在Java中,`java.util.Map`...

    gson 2.3.1 json转换利器

    本篇文章将深入探讨Gson 2.3.1的核心功能、使用方法以及它在JSON转换中的优势。 一、Gson简介 Gson库的主要目的是解决Java对象与JSON字符串之间的相互转换问题。JSON(JavaScript Object Notation)是一种轻量级的...

    andriod之json转换工具jar包

    这里提到的"andriod之json转换工具jar包"是一个专门为Android平台设计的JSON处理库,帮助开发者快速地将Java对象转换为JSON格式,反之亦然。 该jar包包含了两个关键组件: 1. `jackson-mapper-asl-1.9.11.jar`:这...

    java XML 和json 转换工具类

    java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和json 转换工具类java XML 和json 转换工具类 java XML 和...

    json转换插件

    在Java开发中,处理JSON数据时,我们经常需要将JSON字符串与Java对象之间进行相互转换,这正是"json转换插件"所扮演的角色。 这个插件的核心功能是提供了一个桥梁,连接JavaScript提交的JSON字符串和Java世界中的...

    json转换工具

    JSON转换工具主要用于将JSON格式的数据转换为其他格式,或者将其他格式的数据转换成JSON,以适应不同的数据交互需求。 在你提供的压缩包文件中,包含了一些Java库,这些库是用于处理JSON转换和其他相关操作的。下面...

    JSON 转换工具

    本文将详细介绍如何使用JSON转换工具,包括将JSON字符串转换为Objective-C的JsonModel和Swift的HandyJSON,以及JsonModel到HandyJSON的转换。 首先,让我们了解一下JsonModel。JsonModel是Objective-C的一个库,它...

    C#平台JSON转换工具

    本篇将详细介绍"C#平台JSON转换工具"的相关知识点。 1. JSON与C#的结合: C#提供了System.Json命名空间(在.NET Framework 3.5 SP1及更高版本中引入)来处理JSON,但这个API在.NET Framework 4.0中已被弃用。...

    Json转换程序

    本篇文章将聚焦于“Json转换程序”,详细介绍JSON序列化与反序列化的过程,以及如何在实际项目中处理JSON格式数据。 **JSON序列化**是指将编程语言中的对象转换成JSON字符串,以便在网络中传输或存储。例如,在Java...

    格式转换工具json2bin

    JSON转换工具通常包含以下功能: 1. **解析JSON**: 工具首先需要解析JSON文本,将其转化为内存中的数据结构。这涉及到验证JSON语法的正确性,如正确的大括号匹配、引号使用等。 2. **编组数据**: 将解析后的JSON...

    json转换工具类

    json转换工具类,可以转换很多格式。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

Global site tag (gtag.js) - Google Analytics