json定义
json是又键值对组成,并且由花括号(大括号)包围。每个键由引导起来,键和值之间使用冒号进行分隔,多组键值对之间进行逗号进行分割
<script>
var jsonobj={
"key1":12,
"key2":"abc",
"key3":true,
"key6":[{
"key7":"cbcb"}, {
"key8":"jaja"},{
"key9":"aa"
}]
}
alert(typeof jsonobj)
</script>
json就是一个对象,里面的key就是他的属性,可以通过对象名.属性的方式调用
<script>
var jsonobj={
"key1":12,
"key2":"abc",
"key3":true,
"key6":[{
key6_1:"123456"},{
key6_2:"jaja"},{
key6_3:"aa"
}]
};
var test =jsonobj.key6[0];
alert(test.key6_1);
// for (var i = 0; i <jsonobj.key6.length ; i++) {
// alert(jsonobj.key6[i])
// }
</script>
json的两个常用方法
json的存在由两种形式。
一种是:对象的形式纯在,我们叫它json对象。
一种是:字符串的形式存在,我们叫他json字符串。
json对象转换为json字符串
var jchangge =JSON.stringify(jsonobj);
alert(jchangge)
json字符串转为json对象
var jsoo = JSON.parse(jchangge)
alert(jsoo)
json在java中的使用
三种转换
1.javaBean和json的互转
导入gson包
//第一步先做一个javabean
package Abstract;
public class abs {
private Integer id;
private String name;
public abs(){
}
public abs(Integer id,String name){
this.id=id;
this.name=name;
}
public String getName() {
return name;
}
public Integer getId() {
return id;
}
public void setName(String name) {
this.name = name;
}
public void setId(Integer id) {
this.id = id;
}
}
@Test
public void method(){
abs test =new abs(12,"kevin");
//创建一个gson类的对象
Gson gson =new Gson();
//使用gson的方法转换
String personJsonString = gson.toJson(test);
System.out.println(personJsonString);
//使用gson将json转为javaclass
gson.fromJson(personJsonString,test.class);
}
2.list和jason的互转(弊端集合元素非对象)
public class jttest {
@Test
public void methdod(){
Gson gson =new Gson();
List<jt> jtList =new ArrayList<>();
jtList.add(new jt(23,"kevin"));
jtList.add(new jt(23,"mark"));
gson.toJson(jtList);
}
}
将集合里面元素也转换成对象的方法
public class jttest {
@Test
public void methdod(){
Gson gson =new Gson();
List<jt> jtList =new ArrayList<>();
jtList.add(new jt(23,"kevin"));
jtList.add(new jt(23,"mark"));
String jtListString =gson.toJson(jtList);
// List list= gson.fromJson(jtListString,jtList.getClass());
List list =gson.fromJson(jtListString,new PersonListType().getType());
System.out.println(list);
}
}
public class PersonListType extends TypeToken<ArrayList<jt>> {
}
动力节点笔记
1.json概述
数据交换两个方法
Xml体积大解析难度大(一般和钱有关系的严谨的系统都采用xml交换)
Json体积小,解析更容易 (java-c++、javascript-java)
相比来说xml语法严格,json语法松散
在javscript中json是一个对象。
3. javascript怎么创建json对象,怎么访问json
注意[]中括号是数值,{}大括号是json
//格式
var jsonObj={
"属性名":属性值,
"属性名":属性值,
"属性名":属性值,
"属性名":属性值,
"属性名":属性值,
...
};
//访问对象属性
console.log(jsonObj.属性名)
console.log(jsonObj["属性名"])
例子
var st = [20];
st[20] = 12;
alert(st.length);
var person= {
"name":"kobe",
"age":43,
"position":["movie","basketball","father"]
};
console.log(person.name);
console.log(person.age);
for (let i = 0; i <person.position.length ; i++) {
console.log(person.position[i])
}
设计一个json格式的数据可以表示全班人数和每个学生信息
var class1= {
"Total":3,
"det":[{"name":"kevin","age":23},{"name":"k","age":23},{"name":"ke","age":23}]
};
console.log(class1.Total);
var s = class1.det;
for (let i = 0; i <s.length ; i++) {
console.log(s[i].name+","+s[i].age)
}
Json用于交换数据
Java将 数据拼接成Json格式的string字符串,给json,json转换成对象。
重点Window.eval(“将字符串当js执行”)
如:获取java来的json格式的字符串。
var jsonfromjava ="{\"name\":\"kevin\",\"age\":23}";
window.eval("var stu ="+ jsonfromjava);
console.log(stu.name)
浏览器向服务器发送请求的方法
- 直接在浏览器地址栏写URL,get请求
- 点击页面超链接,get请求。
- 提交form表单,可以是get,也可以是post
- Window.open(url);
- Document.location.href=rul;
例子
!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
var jsonfromjava = "{\"ID\":1,\"Name\":\"Kabul\",\"CountryCode\":\"AFG\",\"District\":\"Kabol\",\"Population\":1780000}";
window.onload =function () {
document.getElementById("display").onclick =function () {
//解析json来的字符串获取记录数
window.eval("data = "+jsonfromjava);
document.getElementById("total_span").innerHTML = data.ID;
document.getElementById("num").innerHTML = data.ID;
document.getElementById("nam").innerHTML = data.Name;
document.getElementById("cityco").innerHTML = data.CountryCode;
document.getElementById("pla").innerHTML = data.District;
document.getElementById("popu").innerHTML = data.Population;
}
};
</script>
</head>
<body>
<!-- <form method="get" action="http://localhost:8080/jsontet_war_exploded/welcome">-->
<form>
<input type="button" value="查找数据" id="display">
<table border="1px" width="40%">
<tr>
<th>编号</th>
<th>姓名</th>
<th>城市代码</th>
<th>地区</th>
<th>人口</th>
</tr>
<tbody>
<tr>
<td id="num"></td>
<td id="nam"></td>
<td id="cityco"></td>
<td id="pla"></td>
<td id="popu"></td>
</tr>
</tbody>
</table>
总记录:<span id="total_span">条</span>
</form>
</body>
</html>
AJAX请求
什么是AJAX请求
AJAX式一种创建交互式我也应用的网页开发技术。是一种浏览器通过js异步发起请求,局部跟新页面的技术。
原生AJAX请求示例