Json-lib解析Json

这是最原始的解析方法
Json格式有两种 数组形式和对象形式

所谓数组形式:

  "['c','d','s','a']";

所谓对象形式:

"{'name':'hr','age':'25'}";

则Json解析也有两种形式 分别对应上面的两种Json形式
JsonArray解析底层为数组形式的json串
这样的数组形式有:数组[],List,Set

JsonObject解析底层为对象的Json串
这样的对象形式有:Map,引用类型对象

常用的方法有:

—————————–对象转json串
JSONArray.fromObject(*) 返回值为JsonArray //将数组、List、Set转换为json串

JsonObject.fromObject(*)返回值为JsonObject //将对象转换为json串

—————————-字符串转对象

User u = (User) JSONObject.toBean(jsonObject,User.class);//将字符串转换成User对象

JSONArray.toArray(jsonArray,String.class); //将对象转换为(String)数组

List list = (List) JSONArray.toCollection(jsonArray)
//将字符串转换成List

Map map = (Map)JSONObject.toBean(jsonObject,Map.class);//将json串转换成Map

练习所用的Demo
User对象 有Sring类型的name age 成员变量


    /**
     * 数组转换成json
     */
    @Test
    public void demo1(){
        String[] array = {"张三","李四","王五"};
        System.out.println(Arrays.toString(array));
        JSONArray jsonArray = JSONArray.fromObject(array);
        System.out.println(jsonArray);
    }

    /**
     * List转换成json
     */
    @Test
    public void demo2(){
        List<String> list = new ArrayList<String>();
        list.add("aaa");list.add("bbb");list.add("ccc");
        JSONArray jsonArray = JSONArray.fromObject(list);
        System.out.println(jsonArray);
    }

    /**
     * Set转换成json
     */
    @Test
    public void demo3(){
        Set<String> set = new HashSet<String>();
        set.add("aaa");set.add("aaa");set.add("bbb");set.add("ccc");
        JSONArray jsonArray = JSONArray.fromObject(set);
        System.out.println(jsonArray);
    }
    /**
     * Map转换成json
     */
    @Test
    public void demo4(){
        Map<String,String> map = new HashMap<String, String>();
        map.put("name","herui");map.put("age","18");
        JSONObject jsonObject = JSONObject.fromObject(map);
        System.out.println(jsonObject);
    }
    /**
     * 对象转换成json
     */
    @Test
    public void demo5(){
//        User u = new User("herui","18");
//        JSONObject jsonObject = JSONObject.fromObject(u);
//        System.out.println(jsonObject);
    }

    /**
     * -------------------------------------------------------------------------------------
     */

    /**
     * json转换成对象
     */
    @Test
    public void demo6(){
        String json = "{'name':'herui','age':'78'}";
        JSONObject jsonObject = JSONObject.fromObject(json);
        User u = (User) JSONObject.toBean(jsonObject,User.class);
        System.out.println(u);
    }

    /**
     * json转换成数组
     */
    @Test
    public void demo7(){
        String json ="['a','v','d']";
        JSONArray jsonArray = JSONArray.fromObject(json);
        String[] s = (String[]) JSONArray.toArray(jsonArray,String.class);
        String json2 = "[1,2,3,4]";
        JSONArray jsonArray2 = JSONArray.fromObject(json2);
        Integer[] i = (Integer[]) JSONArray.toArray(jsonArray2,Integer.class);
        System.out.println(Arrays.toString(i));
//        System.out.println(Arrays.toString(s));
    }


    /**
     * json转换成List
     */
    @Test
    public void demo8(){
        String json ="['a','v','d']";
        JSONArray jsonArray = JSONArray.fromObject(json);
//        List<String> list = (List<String>) JSONArray.fromObject(json);
        List<String > list = (List<String>) JSONArray.toCollection(jsonArray);
        System.out.println(list);
    }

    /**
     * json转换成map
     */
    @Test
    public void demo10(){
        String json = "{'name':'herui','age':'78'}";
        JSONObject jsonObject = JSONObject.fromObject(json);
        Map<String,String> map =  (Map<String,String>)JSONObject.toBean(jsonObject,Map.class);
        System.out.println(map);
    }

方法不太好用 ,不够灵活。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值