JavaWeb基础-10.JSON&AJAX&i18n

1. JSON

  • JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写,也易于机器解析。JSON采用完全独立于语言的文本格式,而且很多语言都提供了JSON的支持
  • JSON是一种轻量级的数据交换格式
  • 轻量级指的是跟xml做比较
  • 数据交换指的是客户端和服务器间业务数据的传递格式

1.1 JSON在JavaScript中的使用

1.1.1 JSON的定义

  • JSON是由键值对组成,并且由大括号包围,每个键由引号引起来,键和值之间使用冒号进行分割,多组键值对间进行逗号进行分割
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="pragma" content="no-cache"/>
    <meta http-equiv="cache-control" content="no-cache"/>
    <meta http-equiv="Expires" content="0"/>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript">
        // json的定义
        var jsonObj = {
   
            "key1": 12,
            "key2": "abc",
            "key3": true,
            "key4": [11, "arr", false],
            "key5": {
   
                "key5-1": 551,
                "key5-2": "key552value"
            },
            "key6": [{
   
                "key6-1-1": 6611,
                "key6-1-2": "6622"
            }, {
   
                "key6-2-1": 6622,
                "key6-2-2": "value"
            }]
        };
</script>
</head>
<body>

</body>
</html>

1.1.2 JSON的访问

  • Json本身是一个对象
  • json中的key可以理解为对象中的一个属性
  • json中的key访问就跟访问对象的属性一样,json.key
 //alert(typeof (jsonObj));//json就是一个对象
        // json的访问
        //alert(jsonObj.key1);
        //alert(jsonObj.key2);
        //alert(jsonObj.key3);
        //alert(jsonObj.key4);
        // for (var i = 0; i < jsonObj.key4.length; i++) {
   
        //     alert(jsonObj.key4[i]);
        // }
        alert(jsonObj.key5["key5-2"]);
        alert(jsonObj.key6[1]["key6-2-1"]);

1.1.3 JSON的两个常用方法

  • JSON的存在由两种形式
  • 一种是对象的形式存在,我们叫他JSON对象
  • 一种是字符串的形式存在,我们叫他JSON字符串
  • 一般我们要操作json中的数据时,需要json对象的格式
  • 一般我们要在客户端和服务器间进行数据交换时,使用json字符串
  • JSON.stringify() 把json对象转换为json字符串
  • JSON.parse() 把json字符串转换为json对象
// json对象转字符串
        var jsonObjString = JSON.stringify(jsonObj);//类似Java中对象的toString
        alert(jsonObjString);
        // json字符串转json对象
        var obj = JSON.parse(jsonObjString);
        alert(obj);

1.2 JSON在Java中的使用

1.2.1 javaBean和json的互转

public class Person {
   

    private Integer id;
    private String name;

    public Person() {
   
    }

    public Person(Integer id, String name) {
   
        this.id = id;
        this.name = name;
    }

    public Integer getId() {
   
        return id;
    }

    public void setId(Integer id) {
   
        this.id = id;
    }

    public String getName() {
   
        return name;
    }

    public void setName(String name) {
   
        this.name = name;
    }

    @Override
    public String toString() {
   
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                '}';
    }
}

	@Test
    public void test1() {
   
        Person person = new Person(1, "zhang");
        //创建gson对象实例
        Gson gson = new Gson();
        //toJson方法可以把java对象转换成json字符串
        String perJsonStr = gson.toJson(person);
        System.out.println(perJsonStr);
        //fromJson把json字符串转换JAVA对象
        Person person1 = gson.fromJson(perJsonStr, Person.class);
        System.out.println(person1);
    }

1.2.2 List和json的互转

public class PersonListType extends TypeToken<ArrayList<Person>> {
   
}

    @Test
    public void test2() {
   
        List<Person> personList = new ArrayList<>();
        personList.add(new Person(1, "li"));
        personList.add(new Person(2, "wang"));

        Gson gson = new Gson();
        String personListJson = gson.toJson(personList);
        System.out.println(personList);

        List list = gson.fromJson(personListJson, new PersonListType(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值