• json总结


    1、json简介:

     json是一种轻量级的数据交换语言,以文本字符串为基础,切易于理解和阅读;

       json采用和独立于其他任何语言的一种数据交互的文本格式,是json成为理想的数据交互语言,并且可以将集合形式的数据装换成json【在使用的时候需要导入包】。

     数据的载体有xml、html、json三种,其中xml是重量级的。

    2.json的作用

    (1)简化创建自定义对象的方式

             json就是用js语法来书写,所以必须挡在<script>标签中,在使用js语法书写json的时候,最外层不要“”;

            首先回顾一下js的方式:

    function person(id,name,sal)
    {
     This.id=id;
     This.name=name;
     This.sal=sal;
    }//创建一个类
    Var p=new person(1,”kw”,1000);
    //创建一个对象
    Document.write(“编号:”+p.id+”<br/>”);
    Document.write(“名字:”+p.name+”<br/>”);
    Document.write(“薪水:”+p.sal+”<br/>”);
    }

    json的创建方式

    var p = {
                id:1,
                name:"kw",
                tel:[
                        {
                            no:"183",
                            type:"移动"
                        },
                        {
                            no:"133",
                            type:"联通"
                        }
                    ],
                show:function(username){
                    alert("我的姓名是:" + p.name+":"+username);
                },
                isSingle:false            
            };

    说明:在使用的过程中name:"kw",属性可以不加“”,但是属性值必须加“”

    3.在ajax中使用json传输数据的时候,js可以直接的解析json格式的文本;

      当按照java的格式写,则需要使用eval(“”)将java转成可以使用js可以解析的文本

      如果是按照js的格式书写的,那么就不需要。

     json的数据传输给xml的html做了一个良好的补充

        // 根据省份查询城市
        public String findCityByProvinceMethod() throws Exception{
            cityList = new ArrayList<String>();
            if("陕西".equals(province)){
                cityList.add("西安");
                cityList.add("商洛");
            }else if("湖南".equals(province)){
                cityList.add("岳阳");
                cityList.add("张家界");
            }else if("广东".equals(province)){
                cityList.add("韶关");
                cityList.add("东莞");
            }
            return "ok";
        }
        //据城市查询区域
        public String findAreaByCityMethod() throws Exception{
            areaList = new ArrayList<String>();
            if("西安".equals(city)){
                areaList.add("临潼");
                areaList.add("灞桥");
            }else if("商洛".equals(city)){
                areaList.add("山阳");
                areaList.add("商州");
            }else if("岳阳".equals(city)){
                areaList.add("AA");
                areaList.add("BB");
            }else if("张家界".equals(city)){
                areaList.add("CC");
                areaList.add("DD");
            }else if("韶关".equals(city)){
                areaList.add("EE");
                areaList.add("FF");
            }else if("东莞".equals(city)){
                areaList.add("GG");
                areaList.add("HH");
            }
            return "ok";
        }
    //Json使用的必须提供get,才可以在获取数据的时候,将数据获取到。
    private List<String> cityList; private List<String> areaList; public List<String> getCityList() { return cityList; } public List<String> getAreaList() { return areaList; }

    使用struts进行json数据 的传输,需要将继承的包改为json-default,它是struts-default的子包。

       <package name="provinceCityAreaPackage" extends="json-default " namespace="/">
               <action name="findCityByProvinceRequest" class="kw.test.provincecityarea.ProvinceCityAreaAction" method="findCityByProvinceMethod">
                   <result name="ok" type="json" >
                   </result>
               </action>
       </package>

    需要导入struts2-json-plugin-2.3.1.1.jar包

    json想要获取到值就会回去到struts控制器中的get方法,将数据拿去过来使用。

    注意:

    Java格式的文本是不可以用js进行解析的,必须将Java格式的文本转成js文本,使用eval(字符串)可以将数据进行转换。但是需要将变量加上圆括号才可以eval(”(“+jsonJAVA+”)”)

    4.为神魔使用?

    用js中,简化创建对象的方式,能够替换xml作为与ajax与服务器交换的技术,xml暂时不会被json替代,xml在做web配置信息时,非常有用,但是注解可能会替代。

    5.哪儿使用?

    在js中,简化创建对象,作为ajax与服务器交互的载体之一。

    6.How怎样使用?

    定义一个对象,定义一个数组。

     

  • 相关阅读:
    fedora中使用 mariadb数据库建库和建表-- mariadb数据库服务无法启动?
    我在linux中使用的vundle 和 vimrc配置
    vim的加密和解密?
    gvim写html代码时如何快速地跳转到一个标签的结束位置: 终极插件: matchit.vim
    HTML5+CSS3整体回顾
    HTML5无刷新修改URL
    使用ab对nginx进行压力测试
    nginx php-fpm 输出php错误日志
    如何正确配置Nginx+PHP
    关于Nginx的一些优化(突破十万并发)
  • 原文地址:https://www.cnblogs.com/kw28188151/p/8276603.html
Copyright © 2020-2023  润新知