zoukankan      html  css  js  c++  java
  • Java里如何应用Json格式数据

    JSON是一种很简洁很重要的数据格式,通常用来交换传输数据,广泛使用于JavaScript技术中,并逐渐在各种流行编程语言中火了起来。在Java中也有一个JSON的库,用来重要作用就是Java对象与JSON、XML数据的相互转换,有着重要的应用。
        环境:JDK5 , json-lib-2.3-jdk15
        所依赖的包:json-lib-2.3-jdk15.jar,commons-collections.jar,commons- lang.jar,commons-logging.jar,commons-beanutils.jar,ezmorph-1.0.6.jar,xom-1.1.jar
        java中各种类型所对应的json格式:
        1.数组或集合-->JSON串
        public static void test1() {
        System.out.println("------------数组或集合-->JSON串----------");
        boolean[] boolArray = new boolean[]{true, false, true};
        JSONArray jsonArray1 = JSONArray.fromObject(boolArray);
        System.out.println(jsonArray1);
        //输出格式: [true,false,true]
        List list = new ArrayList();
        list.add("first");
        list.add("second");
        JSONArray jsonArray2 = JSONArray.fromObject(list);
        System.out.println(jsonArray2);
        //输出格式: ["first","second"]
        JSONArray jsonArray3 = JSONArray.fromObject("[json,is,easy]");
        System.out.println(jsonArray3);
        //输出格式: ["json","is","easy"]
        }
        2.Object|Map-->JSON串
        public static void test2() {
        System.out.println("------------Object|Map-->JSON串----------");
        Map map = new HashMap();
        map.put("name", "json");
        map.put("bool", Boolean.TRUE);
        map.put("int", new Integer(1));
        map.put("arr", new String[]{"a", "b"});
        map.put("func", "function(i){ return this.arr[i]; }");
        JSONObject jsonObject1 = JSONObject.fromObject(map);
        System.out.println(jsonObject1);
        //输出格式: {"func":function(i){ return this.arr[i]; },"arr":["a","b"],"int":1,"bool":true,"name":"json"}
        JSONObject jsonObject2 = JSONObject.fromObject(new MyBean());
        System.out.println(jsonObject2);
        //输出格式: {"func1":function(i){ return this.options[i]; },"func2":function(i){ return this.options[i]; },"name":"json","options":["a","f"],"pojoId":1}
        }
        public class MyBean {
        private String name = "json";
        private int pojoId = 1;
        private char[] options = new char[]{a, f};
        private String func1 = "function(i){ return this.options[i]; }";
        private JSONFunction func2 = new JSONFunction(new String[]{"i"}, "return this.options[i];");
        public String getName() {
        return name;
        }
        public void setName(String name) {
        this.name = name;
        }
        public int getPojoId() {
        return pojoId;
        }
        public void setPojoId(int pojoId) {
        this.pojoId = pojoId;
        }
        public char[] getOptions() {
        return options;
        }
        public void setOptions(char[] options) {
        this.options = options;
        }
        public String getFunc1() {
        return func1;
        }
        public void setFunc1(String func1) {
        this.func1 = func1;
        }
        public JSONFunction getFunc2() {
        return func2;
        }
        public void setFunc2(JSONFunction func2) {
        this.func2 = func2;
        }
        }

    3.JSON串-->Object
        public static void test3() {
        System.out.println("------------JSON串-->Object----------");
        String json1 = "{name="json",bool:true,int:1,double:2.2,func:function(a){ return a; },array:[1,2]}";
        JSONObject jsonObject1 = JSONObject.fromObject(json1);
        Object bean1 = JSONObject.toBean(jsonObject1);
        System.out.println(bean1);
        //net.sf.ezmorph.bean.MorphDynaBean@10dd1f7[
        //    {double=2.2, func=function(a){ return a; }, int=1, name=json, bool=true, array=[1, 2]}
        //]
        String json2 = "{bool:true,integer:1,string:"json"}";
        JSONObject jsonObject2 = JSONObject.fromObject(json2);
        BeanA bean2 = (BeanA) JSONObject.toBean(jsonObject2, BeanA.class);
        System.out.println(bean2);
        // BeanA{bool=true, integer=1, string=json}
        }
        public class BeanA {
        private boolean bool;
        private Integer integer;
        private String string;
        public boolean isBool() {
        return bool;
        }
        public void setBool(boolean bool) {
        this.bool = bool;
        }
        public Integer getInteger() {
        return integer;
        }
        public void setInteger(Integer integer) {
        this.integer = integer;
        }
        public String getString() {
        return string;
        }
        public void setString(String string) {
        this.string = string;
        }
        @Override
        public String toString() {
        return "BeanA{"bool=" + bool +", integer=" + integer +", string=" + string + +"}";
        }
        }
        4.JSON串-->XML
        public static void test4() {
        System.out.println("------------JSON串-->XML----------");
        JSONObject json = new JSONObject(true);
        String xml = new XMLSerializer()。write(json);
        System.out.println(xml);
        JSONObject json1 = JSONObject.fromObject("{"name":"json","bool":true,"int":1}");
        String xml1 = new XMLSerializer()。write(json1);
        System.out.println(xml1);
        JSONArray json2 = JSONArray.fromObject("[1,2,3]");
        String xml2 = new XMLSerializer()。write(json2);
        System.out.println(xml2);
        }
        5.XML-->JSON串
        public static void test5() {
        System.out.println("------------XML-->JSON串----------");
        String xml = "" +
        "<a class="array"> " +
        "    <e type="function" params="i,j"> " +
        "            return matrix[i][j]; " +
        "    </e> "

  • 相关阅读:
    【Nginx 快速入门】反向代理、负载均衡、动静分离
    【Redis】缓存穿透、缓存击穿、缓存雪崩(面试必备)
    【Redis】特殊数据类型
    【Redis】特殊数据类型
    【Redis】特殊数据类型
    typescript 技巧学习
    angular9的学习(十九)
    angular11源码探索二十六[Router整体路由配置]
    angular11源码探索二十五[Router路由事件]
    angular11源码探索二十四[路由检测变更策略]
  • 原文地址:https://www.cnblogs.com/biggestfish/p/2925367.html
Copyright © 2011-2022 走看看