Ajax和Json的使用

ajax

引入 javascript

<script type="text/javascript">

</script>

Javascript的函数

在Javascript的编写范围内写入自己的代码

function 代表这是一个函数, f是函数名

    function f() {

    }

前端选择器

name:
<input type="text" id="name" onblur="a2()">
<span id="nameinfo"></span>
<br>
pwd:
<input type="text" id="pwd" onblur="a1()">
<span id="pwdinfo">

前端界面如上

$("#pwdinfo").html(data) 可以把data的值添加到这id为pwdinfo的这个标签中

$("#pwdinfo").css("color","red") 修改id为pwdinfo的这个标签的颜色

$("#pwd").val()  id 选择器,可以得到这个标签的值

可以通过$("# id")来得到这个id的html标签,并且可以通过后面的方法来对他进行一些操作,

编写一个ajax

函数的模板:

    function f() {
		$.ajax({
                url: "/hi2",
                // type:post,
                data: {"name": $("#name").val()},
                success: function (data, status) {
                    alert(data);
                    alert(status);
                }
            })
    }
ajax中的参数解析:
        url:待提交给后台的地址
        type: 采用的提交方式
        data:所带的参数(通过json格式)
        success: function(data, status) ajax请求成功后的回调函数:data是返回的数据,status是返会的状态(200、404)

Json

Json和javascript

json主要用来和前台交互数据的,它的基本格式语法:

  • 对象表示为键值对,数据由逗号分隔

  • 花括号保存对象

  • 方括号保存数组

    常见形式:

    {"name": "QinJiang"}
    {"age": "3"}
    {"sex": "男"}
    

    JSON 是 JavaScript 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。

var obj = {a: 'Hello', b: 'World'}; //这是一个对象,注意键名也是可以使用引号包裹的
var json = '{"a": "Hello", "b": "World"}'; //这是一个 JSON 字符串,本质是一个字符串

JSON 和 JavaScript 对象互转

  • 要实现从JSON字符串转换为JavaScript 对象,使用 JSON.parse() 方法:

    var obj = JSON.parse('{"a": "Hello", "b": "World"}'); 
    //结果是 {a: 'Hello', b: 'World'}
    
  • 要实现从JavaScript 对象转换为JSON字符串,使用 JSON.stringify() 方法:

    var json = JSON.stringify({a: 'Hello', b: 'World'});
    //结果是 '{"a": "Hello", "b": "World"}'
    

加入依赖( Jackson )

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.8</version>
        </dependency>

使用方法

获得ObjectMapper对象,然后调用对象的API即可,可以在RequestMapping中添加参数来解决乱码问题

    // faskjson,jackson 来处理返回json
    @RequestMapping(value = "/json2", produces = "application/json; charset=utf-8")
    @ResponseBody
    public String json2() throws JsonProcessingException {
        ObjectMapper mapper = new ObjectMapper();
        User user = new User("asfd", "asdf", "asdf");
        String s = mapper.writeValueAsString(user);
        return s;
    }

格式化时间

    @ResponseBody
    @RequestMapping("/time")
    public String time() throws JsonProcessingException {
        Date date = new Date();
        ObjectMapper mapper = new ObjectMapper();
        // 关闭时间戳
        mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
        // 格式化时间
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        mapper.setDateFormat(simpleDateFormat);
        return mapper.writeValueAsString(date);
    }

fastjson

fastjson是阿里开发的一款专门用于Java开发的包,可以方便的实现json对象与JavaBean对象的转换,实现JavaBean对象与json字符串的转换,实现json对象与json字符串的转换。实现json的转换方法很多,最后的实现结果都是一样的。

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
   <version>1.2.60</version>
</dependency>

fastjson 三个主要的类:

  • 【JSONObject 代表 json 对象 】
    • JSONObject实现了Map接口, 猜想 JSONObject底层操作是由Map实现的。
    • JSONObject对应json对象,通过各种形式的get()方法可以获取json对象中的数据,也可利用诸如size(),isEmpty()等方法获取"键:值"对的个数和判断是否为空。其本质是通过实现Map接口并调用接口中的方法完成的。
  • 【JSONArray 代表 json 对象数组】
    • 内部是有List接口中的方法来完成操作的。
  • 【JSON 代表 JSONObject和JSONArray的转化】
    • JSON类源码分析与使用
    • 仔细观察这些方法,主要是实现json对象,json对象数组,javabean对象,json字符串之间的相互转化。

参考:

https://blog.kuangstudy.com/index.php/archives/480/

https://blog.kuangstudy.com/index.php/archives/481/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值