标签:指定 lse lis 获取数据 fastjson tco Servle .class 文本
JavaScript Object Notation,意为JavaScript对象表示法,是一种存储和交换信息的数据格式,比xml更小、更快、更易于解析
json对象.键名
json对象[”键名“]:注意有引号
数组对象[索引]
for(key in person) {
alert(key + " : " + person[key]);
}
JSON解析器:Jsonlib(官方)、Gson(Google)、fastjson(Alibaba)、Jackson
导入Jackson的相关jar包
创建Jackson核心对象ObjectMapper
writeValue(参数, obj):参数的取值
File:将obj对象转换为json字符串,并保存到指定的文件
Writer:将obj对象转换为json字符串,并填充到指定的字符输出流
OutputStream:将obj对象转换为json字符串,并填充到指定的字节输出流
writeValueAsString(obj):将java对象转为json字符串
调用ObjectMapper的相关方法进行转换
Person person = new Person("David", 18, "男");
ObjectMapper mapper = new ObjectMapper();
String json_person = mapper.writeValueAsString(person);
mapper.writeValue(new File("d://a.txt"), person);
注解:当java对象有的成员变量是Date类型的时候,如果直接转为JSON得到的值是毫秒值,可以使用注解解决这个问题:在定义的类的成员变量上添加这两个注解:
@JsonIgnore:表示在转为JSON时不考虑这个键值对
@JsonFormat:表示在转为JSON时可以转为指定的格式
@JsonFormat(pattern = "yyyy-mm-dd")
复杂的java对象:
创建Jackson核心对象ObjectMapper
ObjectMapper对象调用readValue方法:readValue(json字符串数据,Class)
String json = "{\"name\":\"david\",\"age\":18,\"gender\":\"男\"}";// 键值对要用双引号、单引号报错
ObjectMapper mapper = new ObjectMapper();
Person person = mapper.readValue(json, Person.class);
实现逻辑:
客户端:
$("#username").blur(function () {
var username = $(this).val();
$.get("findUsernameServlet", {username:username}, function (data) {// data 是服务端响应的数据
var span = $("#span_username");
if (data.userExist) {
span.css("color", "red");
span.html(data.msg);
} else {
span.css("color", "green");
span.html(data.msg);
}
}, "json");// 格式为json
});
服务端:
response.setContentType("text/html;charset=utf-8");
String username = request.getParameter("username");
Map<String, Object> map = new HashMap<String, Object>();
if ("cat".equals(username)) {
// 用户名已经存在,应该去查找数据库判断
map.put("userExist", true);
map.put("msg", "用户名已经存在");
} else {
// 用户名没有存在
map.put("userExist", false);
map.put("msg", "用户名可用");
}
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(response.getWriter(), map);
注意:需要把服务器写会的数据当做JSON处理,两种方法:
response.setContentType("application/json;charset=utf-8");
标签:指定 lse lis 获取数据 fastjson tco Servle .class 文本
原文地址:https://www.cnblogs.com/zhuobo/p/10854411.html