1、使用fastJson 将String转 map:

String out;

Object succesResponse = JSON.parse(out);    //先转换成Object

Map map = (Map)succesResponse;         //Object强转换为Map

2、String 转 java 对象

fastjson 应用 string字符串转换成java对象或者对象数组

代码如下

  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.List;
  4. import com.alibaba.fastjson.JSON;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.alibaba.fastjson.TypeReference;
  7. public class TestFastJson {
  8. public static void main(String[] args) {
  9. //  转换成对象
  10. String jsonstring = "{\"a\":51,\"b\":0}";
  11. Usa u1 = JSON.parseObject(jsonstring, new TypeReference<Usa>(){});
  12. Usa u2 = JSON.parseObject(jsonstring,Usa.class);
  13. // 转换成对象数组
  14. String jsonstring2 = "[{\"a\":51,\"b\":0}]";
  15. Usa[] usa2 = JSON.parseObject(jsonstring2, new TypeReference<Usa[]>(){});
  16. List list = Arrays.asList(usa2);
  17. // 转换成ArrayList
  18. ArrayList<Usa> list2 = JSON.parseObject(jsonstring2, new TypeReference<ArrayList<Usa>>(){});
  19. // 转换成ArrayList(默认)    list3  与 list4  效果相同
  20. ArrayList<JSONObject> list3 = JSON.parseObject(jsonstring2, new ArrayList<Usa>().getClass());
  21. ArrayList<JSONObject> list4 = JSON.parseObject(jsonstring2, ArrayList.class);
  22. for (int i = 0; i < list4.size(); i++) { //  推荐用这个
  23. JSONObject io = list4.get(i);
  24. System.out.println(io.get("a") + "======adn====="+io.get("b"));
  25. }
  26. }
  27. }
  28. class Usa {
  29. private int count = 1888;
  30. private String base = "project";
  31. private Long a;
  32. public Long getA() {
  33. return a;
  34. }
  35. public void setA(Long a) {
  36. this.a = a;
  37. }
  38. private String b;
  39. public String getB() {
  40. return b;
  41. }
  42. public void setB(String b) {
  43. this.b = b;
  44. }
  45. }

json字符串 直接转换成List

  1. ArrayList<Usa> usa2 = JSON.parseObject(jsonstring2, new TypeReference<ArrayList<Usa>>(){});

或者转换成对象数组

Usa[] usa2 = JSON.parseObject(jsonstring2, new TypeReference<Usa[]>(){});

对象数组转List

List list = Arrays.asList(usa2);

我们使用new TypeReference的时候会生成多个class文件 里面有多少个new TypeReference 就会新增了class

即使我们在for循环里(0-N)写new TypeReference 这段代码也是多生成一个class文件,fastjson是看我们写了多少new TypeReference,而不是调用了多少次new TypeReference。推荐用ArrayList.class

string 转 java对象、转map的方式的更多相关文章

  1. java对象转map

    /** * java对象转map * @param obj * @return * @throws IllegalAccessException * @throws IllegalArgumentEx ...

  2. Java对象与Map间相互转换

    将Java对象转为一个Map,以及将map转为对应Java对象,代码如下: public class BeanMapUtil { private static ConcurrentHashMap< ...

  3. java 对象转Map方法Demo

    /** * 用于对Object进行解析并且转换成Map键值对的形式 * */ public class ObjectUtils { private static final String JAVAP ...

  4. java对象与map对象相互转换

    /** * 使用org.apache.commons.beanutils进行转换 */ class A { public static Object mapToObject(Map<String ...

  5. java 对象参数去空格方式

    import java.lang.reflect.Field; import java.lang.reflect.Method; public class Test { /** * 去掉bean中所有 ...

  6. JAVA中将对象转为Map类型

    之前讲过将Map转为JAVA对象的文章,那么问题来了,如果要把JAVA对象转为Map,又该怎么操作呢?这里亲测了2个方法可行,但目前这2个方法都是基于简单JAVA Bean的情况(即Bean中不能嵌套 ...

  7. Java对象或String转JSON对象

    Java String转JSON对象 用阿里的fastjson里的一个方法,导入fastjson包JSONObject jsonObject1 =JSONObject.parseObject(Stri ...

  8. JAXB实现java对象与xml之间转换

    JAXB简介: 1.JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这样一来可以更好的标 ...

  9. 总结学习! xml与java对象转换 --- JDK自带的JAXB(Java Architecture for XML Binding)

    JAXB(Java Architecture for XML Binding) 是一个业界的标准,是一项可以根据XML Schema产生Java类的技术.该过程中,JAXB也提供了将XML实例文档反向 ...

随机推荐

  1. 基于DDD的.NET开发框架-DDD经典分层

    DDD核心思想是由业务问题来控制解决方案的形式从以数据库为中心过渡到领域模型为中心 下面这个图是我在<领域驱动设计与模式实战>书中拍下来的,他完全诠释DDD的经典分层. 程序代码中也是响应 ...

  2. postman--- form-data、x-www-form-urlencoded、raw、binary分别如何设置

    转自:http://blog.csdn.net/wangjun5159/article/details/47781443 1.form-data:  就是http请求中的multipart/form- ...

  3. C++设计模式之适配器模式(三)

    4.适配器模式总结 在对象适配器模式中.适配器与适配者之间是关联关系:在类适配器模式中.适配器与适配者之间是继承关系.不论是对象适配器还是类适配器.适配器模式都将现有接口转化为客户类所期望的接口.实现 ...

  4. FusionCharts:tooltip分行显示

    FusionCharts:tooltip分行显示 tooltip分行显示:如果tooltip过长,可分行显示,在tooltip中增加{br} <chart> <set label=' ...

  5. C语言printf格式化输出修饰符详解

    转换说明 输出 %a,%A 浮点数.十六进制数和p-计数法(C99) %c 一个字符 %d 有符号十进制数 %e,%E 浮点数,e计数法 %f 浮点数,十进制计数法 %g,%G 根据数值不同自动选择% ...

  6. linux一条命令添加一个root级别账户并设置密码

    内网机器提权添加账户,无回显,设置密码就不好弄,下面就是添加一个root级别的账户并设置密码的命令   ? 1 useradd -p `openssl passwd -1 -salt 'lsof' a ...

  7. flink on yarn 用户代码获取keytab本地文件和principal的方法

    flink on yarn的情况下配置的keytab文件会根据每次yarn application 分配taskmanager的变化都是不一样的,在部分场景下用户代码也需要获得keytab文件在yar ...

  8. ssh远程主机的免密登录配置

    ssh经常登录远程主机,需要输入密码,很麻烦,怎样变懒呢? test environment:      hostA:ubuntu14.04  username:frank ip:192.168.1. ...

  9. Windows编程总结之 DLL

    +-- 版本 --+-- 编辑日期 --+-- 作者 -------------+ | V1. | | yin_caoyuan@.com | +----------+--------------+-- ...

  10. 由于没有发现潜在的递归导致MySQL链接数溢出:MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connec

    DAOProxy的代码:下面代码中红色高亮的就是出问题的地方,DAOFactory中会构造一个PersonDAOProxy,调用listPersons或者addPerson显然会导致递归,从而导致My ...