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

做一个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<String, String> map=new HashMap<String, String>();
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<String> list=new ArrayList<String>();
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<String,String> map = (HashMap<String,String>) 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
package json;
public class UserBean {
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;
}
}
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 void testParseJsonArray() {
//json集合
String jsonString = "[{\"age\":\"13\",\"name\":\"zhangSan\"},{\"age\":\"14\",\"name\":\"liSi\"}]";
JSONArray jsonArray = JSONArray.fromObject(jsonString);
//Java集合
List<Employee> list = (List<Employee>) jsonArray.toCollection(jsonArray, Employee.class);
for(Employee employee : list){
System.out.println(employee);
}
}
java中json包的使用以及字符串,map,list,自定义对象之间的相互转换的更多相关文章
- Java中JSON字符串与java对象的互换实例详解
这篇文章主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JS ...
- (转)Java中JSON字符串与java对象的互换实例详解
在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...
- Java中JSON字符串与java对象的互换实例详解(转)
http://www.jb51.net/article/90914.htm 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要 ...
- java中 json和bean list map之间的互相转换总结
JSON 与 对象 .集合 之间的转换 JSON字符串和java对象的互转[json-lib] 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级 ...
- java中的数据类型,运算符,字符串,输入输出,控制流,大数值,数组; 《java核心技术卷i》 第三章:java基本程序结构;
<java核心技术卷i> 第三章:java基本程序结构: 每次看书,去总结的时候,总会发现一些新的东西,这次对于java的数组有了更深的了解: java中的数据类型,运算符,字符串,输入输 ...
- java 中的包概念
Java 中的包package, 就是电脑中的文件夹.我们平时在工作中,文件太多时,都会新建文件夹进行分类管理,java 中的包也是类似的道理,当我们的类太多时,也需要进行分类管理,这时我们就会把类文 ...
- Java中带包(创建及引用)的类的编译
Java中带包(创建及引用)的类的编译与调试 java源程序的编译大家都知道,也就是cmd中到源文件所在目录下javac **.java即可,当程序中有包声明还能简简单单的直接javac **.jav ...
- java保存json格式数据,保存字符串和读取字符串
1.java保存json格式数据,保存字符串和读取字符串 import java.io.*; class RWJson { public void wiite(String s, String toS ...
- 理解Java中【包】的概念
Java中用package关键字定义一个包,下面通过几个实验,理解Java中的包的概念和作用. 实验1:先看一个无包的情形 在G盘下新建一个Test.java,如图1: 写下面这些代码 <spa ...
随机推荐
- 数据恢复-extundelete
http://extundelete.sourceforge.net/options.html 误删除/usr/share目录因此考虑恢复目录过程如下:1.选用extundelete软件来进行恢复,源 ...
- unity, 由unity5.2.1升级到5.4.2物体变亮解法
由unity5.2.1升级到5.4.2之后,使用standard shader的物体会变亮. 原因如图: 框中两项是5.4.2多出来的,如果把specular Highlights的勾选去掉,就跟以前 ...
- 【转】object标签和embed标签
我们现在大部分人做网页,都是直接用DW插入flash,而且DW也是所见即所得,直接生成了相应的flash显示代码.可是我们又有多少人了解这些直接由DW生成的代码呢?其实我接触flash player标 ...
- 全局程序集GlobalAssemblyInfo.cs进行版本控制(引)
原文出自:http://blog.csdn.net/oyi319/article/details/5753311 1.全局程序集GlobalAssemblyInfo.cs 我们编写的一个解决方案,通常 ...
- IOS:被误解的MVC和被神化的MVVM
MVC的历史 MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写.它表示的是一种常见的客户端软件开发框架. ...
- Android Studio如何添加override
而Android Studio如何添加呢?方法如下: 右键(或者Alt + Insert) --- Generate... ---- Override Method... 或者 Implement ...
- C转义字符
C语言输出特殊字符 C语言转义字符意义大体同于前面的C#转义字符,这里列出用c语言,输出%d.\n等特殊字符的方法. #include <stdio.h> int main() { pri ...
- Discuz!NT 3.9.913 Beta DIY过程
前提: 论坛的源码版本为dnt_3.9.913_sqlserver_beta.zip,以下例子都以这个版本为原型修改 dnt_3.9.913数据字典:下载 目前(2013年10月21日)官网的asp. ...
- SSH_框架整合3-删除
一.普通删除 1 完善src中 类: (1)EmployeeDao.java中: //2 删除 public void delete(Integer id){ String hql="DEL ...
- TCP中需要了解的东西
1.TCP是一个流协议. TCP跟UDP不一样的是,TCP发送过去的东西是stream,也就是说第一次发送的跟第二次发送的数据包可能会粘在一起,即所谓的粘包问题 http://blog.csdn.ne ...