好用的ObjectMapper工具类(jackson-databind-2.4.3.jar)

同时Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。功能非常的强悍!

       大家也知道,json 在如今互联网时代应用的非常广,因为大家如此的关注,所以对json的解析性能要求也是非常高的。

 

 

转hashMap:

 

ObjectMapper mapper = new ObjectMapper();
HashMap<String,String> map = mapper.readValue(dataStr, HashMap.class);

转实体对象

 

 

MqdOrgProductStandardVo standardVo = mapper.readValue( standardProductData,MqdOrgProductStandardVo.class );

*********************************************************************************************************************

字符串json数组类型转数组对象

实体对象:

public class MqdQualEnclEntity extends BaseEntity{
private static final long serialVersionUID = 1L;


//columns START
//ID


private String id;
//资质表ID


private String qualId;
//资质类型(企业或者产品)


private String qualType;
//业务ID(企业ID或产品ID)


private String buiId;
//资质模板ID




    
    
public void setId(String id) {
this.id = id;
}


public String getDataStatus() {
return dataStatus;
}


public void setDataStatus(String dataStatus) {
this.dataStatus = dataStatus;
}


public String getDbUser() {
return dbUser;
}


public void setDbUser(String dbUser) {
this.dbUser = dbUser;
}


public String getDbPaw() {
return dbPaw;
}


public void setDbPaw(String dbPaw) {
this.dbPaw = dbPaw;
}


public String getId() {
return this.id;
}


public void setQualId(String qualId) {
this.qualId = qualId;
}


public String getQualId() {
return this.qualId;
}


public void setQualType(String qualType) {
this.qualType = qualType;
}


public String getQualType() {
return this.qualType;
}


public void setBuiId(String buiId) {
this.buiId = buiId;
}


public String getBuiId() {
return this.buiId;
}


 

}

json字符串(dataStr)转集合对象

List<MqdQualTempChooseEntity> qualEnclList = mapper.readValue(dataStr, new TypeReference<List<MqdQualTempChooseEntity>>() {} );

 

*************************************************************************************************************************

 

json-lib-2.4-jdk15.jar(net.sf.json)

 

转list

 

 

List<Map<String,String>> paramList = JSONArray.toList(JSONArray.fromObject(dataStr),HashMap.class);
 
 
 

用GSON解析Json格式数据

GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用。如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的libs目录下添加这个文件即可;如果是在Java项目中,则把gson-2.2.4.jar先添加到当前项目的任意一个包中,然后右键点击这个jar包 -> 构建路径 -> 添加至构建路径。这样准备工作就做好了

 
1 String jsonData = "{\"name\":\"John\", \"age\":20}";  //注:这里也可以不使用转义字符,而用单引号:String jsonData = "{'name':'John', 'age':20}";
2 Gson gson = new Gson();
3 Person person = gson.fromJson(jsonData,Person.class);

 

 

 

import com.google.gson.Gson;


/**
 * 用GSON解析单条Json数据
 *
 */
public class GsonTest1 {
    public static void main(String[] args) {
        String jsonData = "{'name':'John', 'age':20}";
        Person person = GsonUtil.parseJsonWithGson(jsonData, Person.class);
        System.out.println(person.getName() + "," + person.getAge());
    }
}


/*
 * 封装的GSON解析工具类,提供泛型参数
 */
class GsonUtil {
    //将Json数据解析成相应的映射对象
    public static <T> T parseJsonWithGson(String jsonData, Class<T> type) {
        Gson gson = new Gson();
        T result = gson.fromJson(jsonData, type);
        return result;
    }


}


class Person {
    private String name;
    private String age;


    public String getName() {
        return name;
    }


    public void setName(String name) {
        this.name = name;
    }


    public String getAge() {
        return age;
    }


    public void setAge(String age) {
        this.age = age;
    }


}

 

 

//##############################################################################################

import java.lang.reflect.Type;
import java.util.List;


import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;


/**
 * 用GSON解析Json数组
 */
public class GsonTest {
    public static void main(String[] args) {
        // Json数组最外层要加"[]"
        String jsonData = "[{'name':'John', 'grade':[{'course':'English','score':100},{'course':'Math','score':78}]},{'name':'Tom', 'grade':[{'course':'English','score':86},{'course':'Math','score':90}]}]";


        List<Student> students = GsonUtil.parseJsonArrayWithGson(jsonData,
                Student.class);
        System.out.println(students);
    }
}


/*
 * 封装的GSON解析工具类,提供泛型参数
 */
class GsonUtil {
    // 将Json数据解析成相应的映射对象
    public static <T> T parseJsonWithGson(String jsonData, Class<T> type) {
        Gson gson = new Gson();
        T result = gson.fromJson(jsonData, type);
        return result;
    }


    // 将Json数组解析成相应的映射对象列表
    public static <T> List<T> parseJsonArrayWithGson(String jsonData,
            Class<T> type) {
        Gson gson = new Gson();
        List<T> result = gson.fromJson(jsonData, new TypeToken<List<T>>() {
        }.getType());
        return result;
    }
}


class Student {
    private String name;
    private List<Grade> grade; // 因为grade是个数组,所以要定义成List


    public class Grade {
        private String course;
        private String score;


        public String getCourse() {
            return course;
        }


        public void setCourse(String course) {
            this.course = course;
        }


        public String getScore() {
            return score;
        }


        public void setScore(String score) {
            this.score = score;
        }


    }


    public String getName() {
        return name;
    }


    public void setName(String name) {
        this.name = name;
    }


    public List<Grade> getGrade() {
        return grade;
    }


    public void setGrade(List<Grade> grade) {
        this.grade = grade;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值