JSON数据
跨语言的传输格式,通常使用JSON来实现前后端数据交互
1.JSON格式:
//描述一个对象
{
属性名:属性值,
...
}
//描述一个数组集合
{元素1,元素2,.....}
描述一个对象:
{
//第一个对象
{
name:"张三",
age:20
},
//第二个对象
{
name:"李四",
age:30
},
......
}
描述一个有数组内容的对象
{
name:"张三",
age:20,
hobbys:["读书","看报",...]
}
2.JSON解析
2.1 前端访问:
var user = {
name:"张三",
age:20,
hobbys:["读书","看报"]
}
属性访问.属性名
集合访问[索引]
//访问张三的第二个爱好
user.hobbys[1]; //默认索引从0开始
2.2 JSON对象和JSON字符串
//JSON对象
var jsonObj = {
name:"张三",
age:20,
hobbys:["读书","看报"]
}
//JSON字符串
var jsonStr = "{ \"name\": \" 张三\" , \"age\": 20 } ";
2.3 JSON对象和JSON字符串的相互转换
JSON对象---->JSON字符串
var jsonObj = {
name:"张三",
age:20,
hobbys:["读书","看报"]
}
var jsonStr = JSON.stringify(jsonObj);
JSON字符串---->JSON对象
var jsonStr = "{ \" name\": \" 张三\" , \" age\": 20 } ";
var jsonObj = JSON.parse(jsonStr);
var jsonObj = eval("("+jsonStr +")");
2.后端返回
String jsonStr = "{ \" name\": \" 张三\" , \" age\": 20 } ";
- 如果服务器端设置了
resp.setContentType("application/json;charset=utf-8")
时返回给前端的数据类型解析后就是JSON对象
如果没有设置,则在浏览器前端还需要进行转换 - 简化JSON字符串的返回
需要使用第三方库
fastjson
下载地址:
链接:https://pan.baidu.com/s/1UN8X3_n7IPj5DKbLfgkapw
提取码:hnx8
使用方式:
resp.setContentType("applicetion/json;charset=utf-8");
String jsonStr = JSON.toJSONString(user对象);
resp.getWriter().writer(jsonStr );