zoukankan      html  css  js  c++  java
  • 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);
            }
        }
  • 相关阅读:
    【NOIP2013提高组T3】货车运输-最大生成树+倍增LCA
    【POJ1986】Distance Queries-LCA算法
    【POJ1986】Distance Queries-LCA算法
    【HDU2874】Connections between cities-LCA算法
    【HDU2874】Connections between cities-LCA算法
    【HDU2586】How far away?-LCA算法模板题
    js ajax调用请求
    js ajax调用请求
    ThinkPHP 3.1.2 视图 2
    ThinkPHP 3.1.2 视图 2
  • 原文地址:https://www.cnblogs.com/guoyansi19900907/p/5001364.html
Copyright © 2011-2022 走看看