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怎样使用?
定义一个对象,定义一个数组。