做一个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,自定义对象之间的相互转换的更多相关文章

  1. Java中JSON字符串与java对象的互换实例详解

    这篇文章主要介绍了在java中,JSON字符串与java对象的相互转换实例详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JS ...

  2. (转)Java中JSON字符串与java对象的互换实例详解

    在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要高,XML需要很多的标签,这无疑占据了网络流量,JSON在这方面则做的很好, ...

  3. Java中JSON字符串与java对象的互换实例详解(转)

    http://www.jb51.net/article/90914.htm 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级的数据格式比xml效率要 ...

  4. java中 json和bean list map之间的互相转换总结

    JSON 与 对象 .集合 之间的转换 JSON字符串和java对象的互转[json-lib]   在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等,JSON作为一个轻量级 ...

  5. java中的数据类型,运算符,字符串,输入输出,控制流,大数值,数组; 《java核心技术卷i》 第三章:java基本程序结构;

    <java核心技术卷i> 第三章:java基本程序结构: 每次看书,去总结的时候,总会发现一些新的东西,这次对于java的数组有了更深的了解: java中的数据类型,运算符,字符串,输入输 ...

  6. java 中的包概念

    Java 中的包package, 就是电脑中的文件夹.我们平时在工作中,文件太多时,都会新建文件夹进行分类管理,java 中的包也是类似的道理,当我们的类太多时,也需要进行分类管理,这时我们就会把类文 ...

  7. Java中带包(创建及引用)的类的编译

    Java中带包(创建及引用)的类的编译与调试 java源程序的编译大家都知道,也就是cmd中到源文件所在目录下javac **.java即可,当程序中有包声明还能简简单单的直接javac **.jav ...

  8. java保存json格式数据,保存字符串和读取字符串

    1.java保存json格式数据,保存字符串和读取字符串 import java.io.*; class RWJson { public void wiite(String s, String toS ...

  9. 理解Java中【包】的概念

    Java中用package关键字定义一个包,下面通过几个实验,理解Java中的包的概念和作用. 实验1:先看一个无包的情形 在G盘下新建一个Test.java,如图1: 写下面这些代码 <spa ...

随机推荐

  1. make与makefile

    Linux makefile 教程 非常详细,且易懂 make与makefile GNU make体系Linux 环境下的程序员如果不会使用GNU make来构建和管理自己的工程,应该不能算是一个合格 ...

  2. eclipse svn subclipse下载地址

    http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240 Eclipse 3.x Subclipse release ...

  3. PERCENT_RANK

    1. percent_rank() over (order by .....) 返回某列或某列组合后每行的百分比排序 如下: with cte as(  SELECT ROWNUM as n  FRO ...

  4. BI案例:BI在连锁零售业应用(ZT)

    第一部分:连锁零售企业上BI的必要性. 目前国内的连锁零售行业的发展趋势,呈现出产业规模化,经营业态多样化,管理精细化的特点.所谓管理精细化就是"精耕细作搞管理,领先一步订系统". ...

  5. Android 查看內存使用

    一.使用dumpsys meminfo命令 1.使用dumpsys meminfo查看内存使用情况 2.过滤某个进程可以使用 dumpsys meminfo | grep -i phone 二,使用t ...

  6. synergy帮组提升办公效率

    这个synergy确实很不错哦,当你在办公室拥有两台或者多台电脑的时候,放在面前多台显示器,多个鼠标,多个键盘,但是你的桌面上,是不是多出了些你不需要看到的键盘或者鼠标?至少我是这样子的,我希望多个显 ...

  7. Ruby Class

    类定义: class 类名 类定义 end ※类名大写字母开始!!! 构造方法(initialize) 类名调用new方法的时候,触发的一个方法. def initialize(my_name = & ...

  8. UI-UIImageView和Image的区别

    1.UIImageView图片视图控件 继承于UIView 用于显示图片在应用程序中 2.UIImage 是将真实图片文件转化为程序中的图片,然后3.UIImageView是Image的载体,负责显示 ...

  9. DEBUG测试

    这几天看一个ros软路由的的API借口的C++实现看到一个关于DEBUG的测试,第一次见,感觉挺实用的,记录一下: #include<iostream> #include <stdi ...

  10. Python类,域,方法,对象,继承

    类和对象: 是面向对象编程的两个主要方面,类创建一个新类型,而对象这个类的实例.. 域: 属于一个对象或类的变量被称为域.域有两种类型: 属于每个实例(类的对象)或属于类本身.它们分别被称为实例变量和 ...