jsonutil(java对象/list与json互转,xml与json互转)

wxw_wang wxw_wang     2022-08-04     231

关键词:

package com.chauvet.utils.json;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.util.List;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;

import org.apache.commons.lang.StringUtils;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;


public class JsonUtils {
    private final static Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
    private static XMLSerializer xmlserializer = new XMLSerializer();
    
    public static Gson getInstance(){
        return gson;
    }
    
    /***
     * List 转为 JSON
     * @param list
     * @return
     */
    public static <T> String list2Json(List<T> list) {
        if(null != list && list.size() > 0){
            JSONArray jsonArray = JSONArray.fromObject(list);
            return jsonArray.toString();
        }
        return "";
    }
    
    
    /***
     * JSON 转换为 List
     * @param jsonStr
     *         [{"age":12,"createTime":null,"id":"","name":"wxw","registerTime":null,"sex":1},{...}]
     * @param objectClass
     * @return
     */
    @SuppressWarnings("unchecked")
    public static <T> List<T> json2List(String jsonStr, Class<T> objectClass){  
        if (StringUtils.isNotBlank(jsonStr)) {
            JSONArray jsonArray = JSONArray.fromObject(jsonStr);  
            List<T> list = (List<T>) JSONArray.toCollection(jsonArray, objectClass);  
            return list;  
        }
        return null;
    }  
    
    
    /***
     * Object 转为  JSON
     * @param object
     * @return
     */
    public static String object2Json(Object object) {
        if(null != object){
            JSONArray jsonArray = JSONArray.fromObject(object);
            return jsonArray.toString();
        }
        return "";
    }
    
    /***
     * 
     * JSON 转 Object
     * 
     * @param jsonStr
     *         [{"age":12,"createTime":null,"id":"","name":"wxw","registerTime":null,"sex":1}]
     * @param objectClass
     * @return
     */
    @SuppressWarnings("unchecked")
    public static <T> T json2Ojbect(String jsonStr,  Class<T> objectClass){
        if(null != jsonStr){
            String leftStr = jsonStr.substring(0,2);
            String rightStr = jsonStr.substring(jsonStr.length()-2,jsonStr.length());
            if(leftStr.equals("[{")){
                jsonStr = jsonStr.substring(1,jsonStr.length());
            }
            if(rightStr.equals("}]")){
                jsonStr = jsonStr.substring(0,jsonStr.length()-1);
            }
            JSONObject jsonStu = JSONObject.fromObject(jsonStr); 
            return (T) JSONObject.toBean(jsonStu,objectClass);
        }
        return null;
    }

    /***
     * JsonArray 转为 JSON
     * @param jsonArray
     * @return
     */
    public static String jsonArrayToJSONString(JSONArray jsonArray) {
        if(null != jsonArray){
            return jsonArray.toString();
        }
        return "";
    }

    /***
     * JsonObject 转为  JSON
     * @param jsonObject
     * @return
     */
    public static String jsonObjectToJSONString(JSONObject jsonObject) {
        if(null != jsonObject){
            return jsonObject.toString();
        }
        return "";
    } 
    
    /***
     * 将Object转换为JsonObject
     * @param object
     * @return
     */
    public static JSONObject object2JsonObject(Object object) {
        if(null != object){
            return JSONObject.fromObject(object);
        }
        return null;
    }

    
    /***
     * XML 转为 JSON
     * @param xmlString
     *             XML字符串  例如:
     *                     <?xml version=‘1.0‘ encoding=‘utf-8‘?><cities><province name=‘北京‘><item>东城区</item><item>西城区</item><item>崇文区</item><item>宣武区</item><item>朝阳区</item><item>丰台区</item><item>石景山区</item><item>海淀区</item><item>门头沟区</item><item>房山区</item><item>通州区</item><item>顺义区</item><item>昌平区</item><item>大兴区</item><item>怀柔区</item><item>平谷区</item><item>密云县</item><item>延庆县</item></province></cities>
     * @return
     * 
     */
    public static String xml2json(String xmlString){
        if(StringUtils.isNotBlank(xmlString)){
            try {
                return xmlserializer.read(xmlString).toString();
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
        return null;
    }

    /***
     * JSON 转为      XML
     * @param xmlString
     *             XML字符串  例如:
     *                     [{‘province‘:{‘@name‘:‘北京‘,‘item‘:[‘东城区‘,‘西城区‘,‘崇文区‘,‘宣武区‘,‘朝阳区‘,‘丰台区‘,‘石景山区‘,‘海淀区‘,‘门头沟区‘,‘房山区‘,‘通州区‘,‘顺义区‘,‘昌平区‘,‘大兴区‘,‘怀柔区‘,‘平谷区‘,‘密云县‘,‘延庆县‘]}}]
     *                  或者:
     *                  {‘province‘:{‘@name‘:‘北京‘,‘item‘:[‘东城区‘,‘西城区‘,‘崇文区‘,‘宣武区‘,‘朝阳区‘,‘丰台区‘,‘石景山区‘,‘海淀区‘,‘门头沟区‘,‘房山区‘,‘通州区‘,‘顺义区‘,‘昌平区‘,‘大兴区‘,‘怀柔区‘,‘平谷区‘,‘密云县‘,‘延庆县‘]}}
     * @return
     * 
     */
    public static String json2xml(String jsonStr){
        if(StringUtils.isNotBlank(jsonStr)){
            try {
                if(jsonStr.contains("[{") && jsonStr.contains("}]")){
                    JSONArray jobj = JSONArray.fromObject(jsonStr);
                    return xmlserializer.write(jobj);
                }
                JSONObject jobj = JSONObject.fromObject(jsonStr);
                return xmlserializer.write(jobj);
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
        return null;
    }
    
    
    /***
     * XML/JSON 互转
     * 
     * @param sourceFilePath
     *                 要解析的文件路径
     * @param directFilePath
     *              生成文件存放的路径
     * @param flag
     *             true:JSON 转为 XML
     *             false:XML转为 JSON
     * @return
     */
    public static String xml2JsonOrjson2Xml(String sourceFilePath,String directFilePath,boolean flag){
        if(StringUtils.isBlank(sourceFilePath) || StringUtils.isBlank(directFilePath)){
            return null;
        }
        FileInputStream in =null;
        BufferedReader br = null; 
        FileWriter fw = null;
        String rs = null;
        try{
            File jsonFile = new File(sourceFilePath);
            in = new FileInputStream(jsonFile); 
            StringBuffer sbuf = new StringBuffer();
            br = new BufferedReader(new InputStreamReader(in));
            String temp =null;

            while((temp=br.readLine())!=null){
                sbuf.append(temp);
            }
            if(flag){
                rs  = json2xml(sbuf.toString());
            }else{
                rs  = xml2json(sbuf.toString());
            }
            File test = new File(directFilePath);
            if(!test.exists()){
                test.createNewFile();
            }
            fw = new FileWriter(test);
            fw.write(rs);
         }catch (Exception e) {
             e.printStackTrace();
        }finally{
            try {
                fw.close();
                br.close();
                in.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return rs;
    }
    
    
    public static void main(String[] args) {
        
//        System.out.println(jfxfTranspose("E:/qwe.json", "E:/qwe.xml", 1));
        
//        System.out.println(json2xml("[{‘province‘:{‘@name‘:‘北京‘,‘item‘:[‘东城区‘,‘西城区‘,‘崇文区‘,‘宣武区‘,‘朝阳区‘,‘丰台区‘,‘石景山区‘,‘海淀区‘,‘门头沟区‘,‘房山区‘,‘通州区‘,‘顺义区‘,‘昌平区‘,‘大兴区‘,‘怀柔区‘,‘平谷区‘,‘密云县‘,‘延庆县‘]}}]"));
//        System.out.println(xml2json("<?xml version=‘1.0‘ encoding=‘utf-8‘?><cities><province name=‘北京‘><item>东城区</item><item>西城区</item><item>崇文区</item><item>宣武区</item><item>朝阳区</item><item>丰台区</item><item>石景山区</item><item>海淀区</item><item>门头沟区</item><item>房山区</item><item>通州区</item><item>顺义区</item><item>昌平区</item><item>大兴区</item><item>怀柔区</item><item>平谷区</item><item>密云县</item><item>延庆县</item></province></cities>"));
        
        /*User u = new User();
        u.setName("wxw");
        u.setAge(12);
        u.setSex(1);
        System.out.println(object2JsonObject(u));*/
        
        /*User u = new User();
        u.setName("wxw");
        u.setAge(12);
        u.setSex(1);
        System.out.println(object2Json(u));*/

        /*User us = json2Ojbect(object2Json(u), User.class);
        System.out.println(us);
        */
        
        /*List<User> list = new ArrayList<User>();
        User u = new User();
        u.setName("wxw");
        u.setAge(12);
        u.setSex(1);
        list.add(u);
        u = new User();
        u.setName("zmx");
        u.setAge(12);
        u.setSex(0);
        list.add(u);
        u = new User();
        u.setName("arnold");
        u.setAge(12);
        u.setSex(1);
        list.add(u);
        String str = list2Json(list);
        System.out.println(str);*/
        
        /*List<User> userList = converAnswerFormString(str, User.class);
        System.out.println(userList);
        */
         
    }
}

 

自己实现java中list对象转换为json对象

1.在你的MyEclipse里新建一个WebProject,就叫Ajax_Json吧。2.新建一个类,名字叫做JsonUtil.java,打包到young.ajax.json,把下面代码复制进去。packageyoung.ajax.json;importjava.beans.IntrospectionException;importjava.beans.Introspector;importjav 查看详情

json的string字符串与java的list列表对象的相互转换

在前端:1.如果json是List对象转换的,可以直接遍历json,读取数据。2.如果是需要把前端的List对象转换为json传到后台,param是ajax的参数,那么转换如下所示:varjsonStr=JSON.stringify(list);varparam={};param.jsonStr=jsonStr;在后台:1.把String转... 查看详情

利用jackson封装常用jsonutil工具类(代码片段)

...成适合项目接口规则的工具类。代码如下:@Slf4jpublicclassJsonUtilprivatestaticObjectM 查看详情

java对象与json字符串的互转(代码片段)

JSON字符串转普通对象普通对象转JSON字符串JSON字符串数组转List集合对象List集合对象转JSON字符串数组JSON字符串转装有对象的Map装有对象的Map转JSON字符串最近,工作中会涉及到Java对象与JSON字符串相互转换,虽然说并不难&... 查看详情

jackson进行json与java对象转换之四

jackson简单使用,对象转json,json转对象,json转list POJO序列化为json字符串:准备一个POJO:@JsonIgnoreProperties(ignoreUnknown=true)classUserimplementsSerializable{privatestaticfinallongserialVersionUID=-5952920972581467417 查看详情

java怎么读取json格式的数据

参考技术Ajava可以使用JSONObject和JSONArray来操作json对象和json数组,具体用法如下1:java对象与json串转换:java对象—json串:JSONObjectJSONStr=JSONObject.fromObject(object);Stringstr=JSONStr.toString();json串—java对象:JSONObjectjsonObject=JSONObject.fromObject... 查看详情

java怎么读取json格式的数据

java可以使用JSONObject和JSONArray来操作json对象和json数组,具体用法如下1:java对象与json串转换:java对象—json串:JSONObjectJSONStr=JSONObject.fromObject(object);Stringstr=JSONStr.toString();json串—java对象:JSONObjectjsonObject=JSONObject.fromObject(jsonString);... 查看详情

c#里jsonutil.tojson是啥意思

JsonUtil这个应该是封装的公共类;toJson是转换成JSON的一个方法参考技术A把指定对象序列化成Json 查看详情

elasticsearchjavaapi-检索索引库

...写入索引,这次记录下如何搜索。一、准备数据Stringdata1=JsonUtil.model2Json(newBlog(1,"git简介","2016-06-19","SVN与Git最主要的区别..."));Stringdata2=JsonUtil.model2Json(newBlog(2,"Java中泛型的介绍与简单使用","2016-06-19", 查看详情

jsonutil.bean2json()报property'key'ofclasshasnoreadmethod.skipped的问题处理

错误警告信息描述:net.sf.json.JSONObject.defaultBeanProcessing(JSONObject.java:769)Property‘handler‘ofclasscom.vrv.cems.mgr.domain.Manager_$$_javassist_182hasnoreadmethod.SKIPPED问题分析:JsonUtil.bean2Json(queryHi 查看详情

json转java对象和list集合

publicstaticvoidmain(String[]args){//转换对象StringstrJson="{"basemenu_id":"1","basemenu_name":"aaaaaa","basemenu_order":"2"}";aaaajb=(aaaa)json2Object(strJson,aaaa.class);//javabean要加".class" 查看详情

java怎么将json文件读取进来并转成map

java中解析json文件,需要下载json解析包,用JSONUtil.deserialize()就可以了,范例: import org.apache.struts2.json.JSONUtil; public class JsonToJava    public static void main(String[] args)        try            String s = JSONObject.toString(... 查看详情

json

关于json插件使用:在java中,可以通过jsonlib插件,在java对象与json之间做转换。关于jsonlib插件使用:1.导包(6个包)2.将java对象转换成json1.对于数组,List集合,要想转换成json     JSONArray.fromObject(java对象);["value1","valu... 查看详情

java中的json解析

...ib-2.2.2-jdk13.jar(2.1在日期数组json->java有问题)工具类JsonUtil代码如下:Java代码publicclassJsonUtil{/**页面传至后台时,json数据在request的参数名称*/publicfinalstaticStringJSO 查看详情

json-json字符串转换成json对象json对象数组java实体类以及保存到list列表中

...没有弄清楚数据的格式问题。实现的是JSONString转换成java对象或是list列表实例类Newspackagelyx.entity;/***@authorlyx* *2015-8-10上午10:14:38***新闻类*/publicclassNews{ /** *日期 */ privateStringdate; /** *链接 */ pr 查看详情

基于jackson的json与对象的互相转换

...JsonMapper类备注的待测试实体类User.javaStudent.java测试代码对象转换成JsonJson转换成对象Json与List对象互转Json与Map对象互转Json与对象在转换中遇到空属性  在JavaWeb开发中,经常会涉及到相关的json与对象的互相转化问题,... 查看详情

java对象数据与json对象数据之间的相互转换(fastjson)(代码片段)

Java对象或集合数据与JSON格式数据之间的转换1、JSON是什么2、JSON数据格式对照3、主流JSON库对比3.1、json-lib【不推荐使用】3.2、Jackson【根据场景使用】3.3、Gson【根据场景使用】3.4、FastJson【根据场景使用】4、FastJson常用的JSON格式... 查看详情

json对象与json字符串的转化json字符串与java对象的转换

Json对象与Json字符串的转化、JSON字符串与Java对象的转换一.Json对象与Json字符串的转化1.jQuery插件支持的转换方式:  $.parseJSON(jsonstr);//jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2.浏览器支持的转换方式(Firefox,chrom... 查看详情