json解析器:
现在用的比较多的是jsonlib,gson,fastjson(阿里巴巴),jackson是springMVC内置的解析器,
今天使用的是jackson的包
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);
}
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);
}
}
}
经过这个这个样例之后,我大概了解了前后端是如何交互的,也离前后端分离又迈进了一大步,起码接下来可以好好的做ssm的项目了。对了,这是本大仙第一次写博客,有什么不足,请大家指正哦。要是觉得好的话,可以帮忙点个赞哦,这是对大仙我的鼓励哦。