html前端页面:
1.JSON对象
属性名不行使用双引号括起来:属性名和属性值之间使用冒号:分割,多个属性之间有逗号分割
var jsonObj = {"name":"孙悟空","age":500};
alert(jsonObj); //jsonObj输出的是对象 [object Object]
如果是object类型,可以直接jsonObj.name 获取属性值
2.JSON数组--可以放,字符串、数字、布尔类型、null、对象、数组
var jsonArray = ["八戒",1500,true,null,jsonObj];
//获取数组中JSON对象的age属性
alert(jsonArray[4].age);
//3.创建一个稍微复杂的JSON对象
var fzJSon = {"name":"唐僧",
"age":18,
"sons":[{"name":"孙悟空"},
{"name":"小白龙"},
{"name":"猪八戒","wives":[{"name":"嫦娥","age":18},
{"name":"高翠儿","age":17},
{"name":"蜘蛛精","age":16}
]},
{"name":"沙和尚"}
]
};
//获取猪八戒第二任夫人的名字
//alert(fzJSon.sons[2].wives[1].name);
//4.将JSON对象 转换为JSON字符串----字符串不能直接取值
var objToStr = JSON.stringify(jsonObj)
//alert(objToStr.name); //{"name":"孙悟空","age":500}
//声明一个JSON字符串
var jsonStr = '{"name":"张继科","age":28}';
//alert(jsonStr);
//5.将JSON字符串转换为JSON对象--对象可以直接取值
var strToObj = JSON.parse(jsonStr);
alert(strToObj.name);
//---前台数据
$(function(){
//给按钮绑定单击事件
$("#btnId").click(function(){
//发送ajax请求
//设置请求地址
//json:可以直接把字符串转换为对象,传给res
var url = "JSONServlet";
$.post(url,function(res){
//alert(res.id+"-"+res.name+"-"+res.age);
},"json");
});
});
<button id = "btnId">发送Ajax请求接收JSON格式的响应数据</button>
//假设从数据库中查询出来的一个User对象
User user = new User(1,"白骨精",19); //字符串
//导入了gson-2.2.4jar包后,可以直接把user字符串转换为对象
System.out.println("user=="+user); //对象
//user:User [id=1, name=白骨精, age=19]
//创建Gson对象
Gson gson = new Gson();
//将User对象转换为JSO字符串
String json = gson.toJson(user);
System.out.println("json:"+json);
//json:{"id":1,"name":"白骨精","age":19}
//
User fromJson = gson.fromJson(json, User.class);
System.out.println("fromJson:"+fromJson);
//fromJson:User [id=1, name=白骨精, age=19]
//给前台一个响应-------属性的双引号要用转译字符
//response.getWriter().write("{"name":"张继科","age":28}");
response.getWriter().write(json);