教你快速上手JSON
教你快速上手JSON
一、Java对象转为JSON字符串
(1)核心对象
//创建Jackson的核心对象 ObjectMapper
ObjectMapper mapper = new ObjectMapper();
(2) 转换方法
writeValue(参数1,obj):
参数1:
File:将obj对象转换为JSON字符串,并保存到指定的文件中
Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
writeValueAsString(obj):将对象转为json字符串
示例: String json = mapper.writeValueAsString(p);
(3)输出位置
//writeValue,将数据写到d://a.txt文件中
//mapper.writeValue(new File("d://a.txt"),p);
//writeValue.将数据关联到Writer中
mapper.writeValue(new FileWriter("d://b.txt"),p);
二、JSON字符串转为Java对象
1、初始化JSON字符串
String json = "{\"gender\":\"男\",\"name\":\"坤坤\",\"age\":18}";
//创建ObjectMapper对象
ObjectMapper mapper = new ObjectMapper();
//转换为Java对象 Person对象
Person person = mapper.readValue(json, Person.class);
2、设置响应数据格式
response.setContentType("application/json;charset=utf-8");
三、基本格式
1、JSON格式
//定义基本格式
var person = {"name": "坤坤", age: 18, 'gender': true};
//获取name的值
//var name = person.name;
var name = person["name"];
// alert(name);
//alert(person);
//嵌套格式 {}、 []
var persons = {
"persons": [
{"name": "坤坤", "age": 18, "gender": true},
{"name": "坤", "age": 20, "gender": true},
{"name": "帅哥", "age": 25, "gender": false}
]
};
// alert(persons);
var name1 = persons.persons[2].name;
// alert(name1);
var ps = [{"name": "坤坤", "age": 18, "gender": true},
{"name": "坤", "age": 20, "gender": true},
{"name": "帅哥", "age": 25, "gender": false}];
//alert(ps);
alert(ps[1].name);
四、 JSON中的循环
//获取person对象中所有的键和值
//for in 循环
/* for(var key in person){
//这样的方式获取不行,因为相当于 person."name"
//alert(key + ":" + person.key);
alert(key+":"+person[key]);
}*/
//获取ps中的所有值
for (var i = 0; i < ps.length; i++) {
var p = ps[i];
for(var key in p){
alert(key+":"+p[key]);
}
}
五、JSON数据转换
//把list ---> json数据
//JSONArray ---> 变成数组 , 集合 []
//JSONObject ---> 变成简单的数据 { name : 坤坤 , age:18}
JSONArray jsonArray = JSONArray.fromObject(list);
String json = jsonArray.toString();