java list 自定义类型转换_java中json包的使用以及字符串,map,list,自定义对象之间的相互转换...

8505288e5ca17d9b7020f81ee3aaeaf8.png

做一个map和字符串的转换,需要导入这些jar包,这是最基本的一些jar包.

经过多方尝试得出结论入下:

首先导入基本包:json-lib-2.2.3-jdk15.jar

如果没有这个jar包,程序是写不起来的.

现在保证了程序编译能够通过,跑一下

出现异常:org/apache/commons/lang/exception/NestableRuntimeException

导入commons-lang-2.3.jar,问题解决.

跑一下:

出现异常:java.lang.ClassNotFoundException: net.sf.ezmorph.Morpher

导入ezmorph-1.0.3.jar,问题解决

跑一下:

出现异常:java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

导入commons-logging-1.1.1.jar,问题解决

跑一下:

出现异常:java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap

导入commons-collections-3.2.1.jar,问题解决

跑一下:

出现异常:java.lang.NoClassDefFoundError: org/apache/commons/beanutils/DynaBean

导入commons-beanutils-1.7.0.jar,问题解决

跑一下,异常没了.

下面来看看这些东西是怎么转换的.

map转string

Map map=new HashMap();

map.put("name", "思思博士");

map.put("age","25");

JSONObject jsonObject=JSONObject.fromObject(map);

String res=jsonObject.toString();

System.out.println(res);

结果:{"age":"25","name":"思思博士"}

list转string

List list=new ArrayList();

list.add("中华");

list.add("人名");

list.add("共和国");

JSONArray jsonArray=JSONArray.fromObject(list);

String res=jsonArray.toString();

System.out.println(res);

结果:["中华","人名","共和国"]

string转map

String res="{\"age\":\"25\",\"name\":\"思思博士\"}";//或者这样//res="{'age':'25','name':'思思博士'}";

JSONObject jsonObject=JSONObject.fromObject(res);

Map map = (HashMap) JSONObject.toBean(jsonObject, HashMap.class);

System.out.println(map);

System.out.println(map.size());

System.out.println(map.get("name"));

System.out.println(map.getClass().getName());

结果:

{name=思思博士, age=25}

2

思思博士

java.util.HashMap

String 转成我们的自定义类

UserBean.java

packagejson;public classUserBean {privateString name;privateString age;publicString getName() {returnname;

}public voidsetName(String name) {this.name =name;

}publicString getAge() {returnage;

}public voidsetAge(String age) {this.age =age;

}

}

String userS = "{'name':'思思博士','age':'25'}";

JSONObject obj=JSONObject.fromObject(userS);

UserBean userBean= (UserBean) JSONObject.toBean(obj, UserBean.class);

System.out.println(userBean.getName());

字符串转换成数组

String arrayString="['a','b','ccc']";

JSONArray jsonArray=JSONArray.fromObject(arrayString);

Object[] arr=jsonArray.toArray();

System.out.println(arr.length);

System.out.println(arr[2]);

结果:

3

ccc

json字符串转list

public voidtestParseJsonArray() {//json集合

String jsonString = "[{\"age\":\"13\",\"name\":\"zhangSan\"},{\"age\":\"14\",\"name\":\"liSi\"}]";

JSONArray jsonArray=JSONArray.fromObject(jsonString);//Java集合

List list = (List) jsonArray.toCollection(jsonArray, Employee.class);for(Employee employee : list){

System.out.println(employee);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值