学习日记:json之what,why,where,how及应用

一、json总介

1)什么是json

(1)json是ajax与服务器一种轻量级数据交换技术;
(2)json本质上是用JavaScript语法书写的一种具有特定格式的文本字符串

2)为什么要使用json

(1)在js中用于简化创建对象;
(2)能够代替xml作为ajax与服务器交互的技术;

3)在哪里使用json

(1)在js中用于简化创建对象;
(2)作为ajax与数据库交互的载体之一

4)怎么使用json

//定义一个对象
var user = {
        id : 123456
        name : "张三";//字符串的话必须加上双引号;

};

//定义一个数组

var array = [
        {},
        {}
];

//定义一个复杂的对象
        var p = {
            id:1,
            name:'哈哈',
            isLove:true,
            home:['广州','深圳'],
            show : function(str){
                alert("你是" + str);
            }
        };

        //document.write(p.isLove?"已婚":"单身"+"<br/>");
        p.show("**");

5)json的应用

当json作为ajax与服务端交互的载体的时候,服务端需要把传输的对象数据转成json,可以将list,map,set或者自定义对象转json ,有两种方法:
(1)struts提供这个功能实现步骤
1、必须导入包struts2-json-plugin-2.3.4.1;
2、在配置的文件必须将 extends=”json-default”,且必须提供一个result type =“json” 如下

    <package name="myPackage" extends="json-default" namespace="/">

        <!-- 全局结果类型,也能配置在具体的action标签中-->
        <global-results>
            <result name="success" type="json"/>
        </global-results>
3、在Action中必须有对象的get方法,比如;
    private List<String> cityList;//城市的集合
    public List<String> getCityList() {
        return cityList;
    }
4、jsp页面中必须把java格式的json转换成JavaScript格式的json
var jsonJAVA = ajax.responseText;

//p所代表的是java格式的json文本,是不能直接被js执行的
//解决方案:将java格式的json文本,转成js格式的json文本
//如何做:用js提供的一个函数搞定
var jsonJS = eval("("+jsonJAVA+")";

(2)或者使用第三方的工具 必须导入的包有
1、commons-beanutils-1.7.0.jar
commons-collections-3.1.jar
commons-lang-2.5.jar
commons-logging-1.1.1.jar
ezmorph-1.0.3.jar
json-lib-2.1-jdk15.jar
2、

JSONArray jSONArray = JSONArray.fromObject(map);
String jsonJAVA = jSONArray.toString();
System.out.println(jsonJAVA);
//[{"total":2,"rows":[{"id":1,"name":"中山"},{"id":2,"name":"佛山"}]}]
//将首尾的方括号去掉才符合JavaScript格式的json
jsonJAVA = jsonJAVA.substring(1,jsonJAVA.length()-1);
System.out.println(jsonJAVA);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值