servlet+ajax+jquery进行数据交互(前后端利用json(jackson)+ajax交互)欢迎大神来指正错误

json

json解析器:

			现在用的比较多的是jsonlib,gson,fastjson(阿里巴巴),jackson是springMVC内置的解析器,
			今天使用的是jackson的包

1、java对象转换成json

1、导入json的jar包
在这里插入图片描述
这是用maven管理的包

    
        com.fasterxml.jackson.core
        jackson-databind
        2.9.8
    
    
        com.fasterxml.jackson.core
        jackson-core
        2.9.8
    
    
        com.fasterxml.jackson.core
        jackson-annotations
        2.9.8
    

2、创建一个java对象

3、创建一个核心的对象objectMapper

	objectMapper mapper = new ObjectMapper();

4、调用object的相关方法

void writeValue(参数1,obj);

参数1:
  	file:将obj文件对象转换成JSON字符串,并保存到指定文件中

 	outputStream:将obj对象转换成JSON对象,并填充到字节输出流中
 
	writer:将obj对象转换成json字符串,并将json数据转换成字符输出流

[String] writeValueAsString(obj)

	将obj对象转换成json字符串

5、代码及结果展示

package com.hqh;


import com.fasterxml.jackson.databind.ObjectMapper;
import domain.Person;
import org.junit.Test;

import java.io.File;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TestUn {
      @Test
      public void fun() throws Exception {
        //1、创建一个person对象
        Person p = new Person();
        p.setPassword("loveCom");
        p.setUsername("二狗子");
        p.setSex("女");
        //2、创建一个json核心对象
        ObjectMapper mapper = new ObjectMapper();
        //3、进行转换(java对象转换成json数据)
        /*
            转换的常用方法
                1、writeValue(参数1,obj)
                参数1:
                    file:将obj文件对象转换成JSON字符串,并保存到指定文件中
                    outputStream:将obj对象转换成JSON对象,并填充到字节输出流中
                    writer:将obj对象转换成json字符串,并将json数据转换成字符输出流
                ;
                2、writeValueAsString(obj)   将obj对象转换成json字符串
         */
//            String s = mapper.writeValueAsString(p);
//        System.out.println(s);
        mapper.writeValue(new File("E://Desktop/hhh/hhh.txt"),p);
        mapper.writeValue(new FileWriter("E://Desktop/hhh/h2.txt"),p);
    }
   

}

6、list和map复杂对象转换成json字符串
单点测试代码如下:
peson对象如下:

在这里插入代码片

package domain;

public class Person {
private String username;
private String password;
private String sex;

@Override
public String toString() {
    return "Person{" +
            "username='" + username + '\'' +
            ", password='" + password + '\'' +
            ", sex='" + sex + '\'' +
            '}';
}

public String getUsername() {
    return username;
}

public void setUsername(String username) {
    this.username = username;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public String getSex() {
    return sex;
}

public void setSex(String sex) {
    this.sex = sex;
}

}

 @Test
    public void f(){
        //创建一个map对象
        Map map = new HashMap();
        map.put("name","hqh");
        map.put("password","root");
        map.put("sex","男");
//创建一个;list对象
        List list = new ArrayList();
        Person person = new Person();
        person.setSex("男");
        person.setUsername("狗子");
        person.setPassword("root");
        Person p1 = new Person();
        p1.setSex("男");
        p1.setUsername("狗子");
        p1.setPassword("root");
        list.add(p1);
        list.add(person);

//创建一个核心对象
        ObjectMapper mapper = new ObjectMapper();
//调用其中的方法
        String ma = mapper.writeValueAsString(map);
        String li = mapper.writeValueAsString(list);
        System.out.println(ma);
        System.out.println(li);
    }

结果如下
在这里插入图片描述

2、json转换成java对象

 @Test
    public void mun() throws Exception{
        String json ="{\"username\":\"狗子\",\"password\":\"root\",\"sex\":\"男\"}"; //定义一个json格式的字符串.

        ObjectMapper jsonObject = new ObjectMapper();

        Person c =jsonObject.readValue(json,Person.class);
        System.out.println(c);

    }

下面开始进行小demo的前端界面




    
    Title
    



界面如下显示:
有点丑,不要嫌弃
后台代码如下:

@WebServlet("/testUserName")
public class TestUser extends HttpServlet {
	private static final long serialVersionUID = 1L;
	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
				System.out.println("你好呀,我热烈欢迎你从ajax进入java");
				String s = request.getParameter("username");
				//创建一个jackson的对象
				ObjectMapper objectMapper = new ObjectMapper();
				if(s.equals("huang")) {
					objectMapper.writeValue(response.getWriter(), "恭喜你对了"+s);
				}else {
					objectMapper.writeValue(response.getWriter(), "不好意识"+s);
					
				}
	}

}

最后的效果图:
servlet+ajax+jquery进行数据交互(前后端利用json(jackson)+ajax交互)欢迎大神来指正错误_第1张图片
servlet+ajax+jquery进行数据交互(前后端利用json(jackson)+ajax交互)欢迎大神来指正错误_第2张图片
在这里插入图片描述

总结

经过这个这个样例之后,我大概了解了前后端是如何交互的,也离前后端分离又迈进了一大步,起码接下来可以好好的做ssm的项目了。对了,这是本大仙第一次写博客,有什么不足,请大家指正哦。要是觉得好的话,可以帮忙点个赞哦,这是对大仙我的鼓励哦。

你可能感兴趣的:(前后端交互,javaweb)