json是什么 * 它是js提供的一种数据交换格式!(在js里面定义直接就是js对象,但以字符串的方式从服务器响应到js中,需要调用eval(“(”+str+“)”)方法变成对象。再进行相关操作
json的语法 * {}:是对象!
<> 属性名必须使用双引号括起来!单引不行!!!
<> 属性值:
- null
- 数值
- 字符串
- 数组:使用[]括起来
- boolean值:true和false
应用json * var person = {“name”:”zhangSan”, “age”:18, “sex”:”male”};
json与xml比较
- 可读性:XML胜出
- 解析难度:JSON本身就是JS对象(主场作战),所以简单很多
- 流行度:XML已经流行好多年,但在AJAX领域,JSON更受欢迎。
json-lib
是什么? * 它可以把javabean转换成json串
jar包 * 略
核心类 * JSONObject –> Map
<> toString();把JSONObject转换为json字符串
<> JSONObject map = JSONObject.fromObject(person):把对象转换成JSONObject对象 *JSONArray –> List
<> toString()
<> JSONArray jsonArray = JSONObject.fromObject(list):把list转换成JSONArray对象
<script type="text/javascript">
function createXMLHttpRequest(){
try {
return new XMLHttpRequest();
} catch (e) {
try {
return new ActvieXObject("Msxml12.XMLHTTP");
} catch (e) {
try {
return new ActvieXObject("Miscrosoft.XMLHTTP");
} catch (e) {
alert("请更换浏览器");
throw e;
}
}
}
}
window.onload=function(){
var btn=document.getElementById("btn");
btn.onclick=function(){
var xmlHttp=createXMLHttpRequest();
xmlHttp.open("GET","<c:url value='/AServlet'/>",true);
xmlHttp.send(null);
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4&&xmlHttp.status==200){
var str=xmlHttp.responseText;
var person=eval("("+str+")");//执行方法,将字符串变成对象
var h3=document.getElementById("h3");
h3.innerHTML=person.name+" "+person.age+" "+person.sex;
}
};
};
};
</script>
</head>
<body>
<%--点击按钮后把服务器响应的内容显示到h3中 --%>
<button id="btn">点击这里</button>
<h1>JSON之Hello World</h1>
<h3 id="h3"></h3>
</body>
</html>
public class AServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
/**
*向客户端发送字符串
*/
String str="{\"name\":\"zhangSan\",\"age\":20,\"sex\":\"man\"}";
response.getWriter().println(str);
System.out.println(str);
}
}
可以使用json-lib将javaBean转化成json格式字符串
示例:
public class Person {
private String name;
private int age;
private String sex;
public Person() {
super();
}
public Person(String name, int age, String sex) {
super();
this.name = name;
this.age = age;
this.sex = sex;
}
public String toString() {
return "Person [name=" + name + ", age=" + age + ", sex=" + sex + "]";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
public class Demo1 {
// @Test
public void fun1(){
JSONObject map=new JSONObject();
map.put("name", "zhangSan");
map.put("age", 23);
map.put("sex", "man");
String s=map.toString();
System.out.print(s);
}
// @Test
public void fun2(){
Person p1=new Person("sunchao", 21, "man");
JSONObject map=JSONObject.fromObject(p1);
String s=map.toString();
System.out.print(s);
}
@Test
public void fun3(){
Person p1=new Person("sunchao", 21, "man");
Person p2=new Person("sunchao", 21, "man");
JSONArray list=new JSONArray();
list.add(p1);
list.add(p2);
String s=list.toString();
System.out.println(s);
}
}