json格式的数据:
{"name":'tom',
"age":18}
json数据格式的属性名称需要用双引号引起来,用单引号或者不用引号会导致读取数据错误。
json的另外一个数据格式是数组
例如:['tom',18,'programmer'] ;
中括号是对象,大括号是数组;
对象和数组都是可以相互嵌套的;
info : 信息;
ajax技术的原理是实例化;
使用此对象与后台通信。ajax通信的过程不会影响后续javascript的执行,从而实现异步;
ajax可以实现局部刷新,也叫做无刷新,无刷新指的是整个页面不刷新,只是局部刷新,ajax可以自己发送http请求。
常用参数:
1、url 请求地址
2、type 请求方式,默认是'GET',常用的还有'POST'
3、dataType 设置返回的数据格式,常用的是'json'格式,也可以设置为'html'
4、data 设置发送给服务器的数据
5、success 设置请求成功后的回调函数
6、error 设置请求失败后的回调函数
7、async 设置是否异步,默认值是'true',表示异步;
ajax,是前端与后台连接的地方;
URL 改变,在URL 里显示 HTML Form 参数的 name/value 值。
只适合有少量参数的 HTML Form,因为 URL 长度有字符限制,不能无限长。
涉及安全性的信息,比如用户密码,不能用 get,因为会在 URL 上显示,不安全。
URL 不改变,不在 URL 里显示 HTML Form 的数据。
Form 提交的信息没有长度限制。
涉及安全性的信息,如用户密码,应采用 post 方式。
什么是正则表达式?
字符串匹配规则;
1.var re=new RegExp('规则', '可选参数') 面向对象的方法;
2.var re=/规则/参数
1普通字符匹配:
例如:/a/ 匹配字符 ‘a’,/a,b/ 匹配字符 ‘a,b’
2.转义字符匹配:
\d 匹配一个数字,即0-9
\D 匹配一个非数字,即除了0-9
\w 匹配一个单词字符(字母、数字、下划线)
\W 匹配任何非单词字符。等价于[^A-Za-z0-9_]
\s 匹配一个空白符
\S 匹配一个非空白符
\b 匹配单词边界
\B 匹配非单词边界
. 匹配一个任意字符,除了换行符‘\n’和回车符‘\r’
\1 重复子项
正则匹配的是字符串用的; 字符串里有一个都返回true
任意一个或者范围
1.[abc123] : 匹配‘abc123’中的任意一个字符
2.[a-z0-9] : 匹配a到z或者0到9中的任意一个字符
1.^ 以紧挨的元素开头
2.$ 以紧挨的元素结尾
量词:对左边的匹配字符定义个数
? 出现零次或一次(最多出现一次)(可以出现0次和1次);
出现一次或多次(至少出现一次);
出现零次或多次(任意次);
{n} 出现n次 ;
{n,m} 出现n到m次 ;
{n,} 至少出现n次 ;
g: global,全文搜索,默认搜索到第一个结果接停止
i: ingore case,忽略大小写,默认大小写敏感
m: multiple lines,多行搜索(更改^ 和$的含义,使它们分别在任意一行对待行首和行尾匹配,而
不仅仅在整个字符串的开头和结尾匹配);
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。
简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。简单来说:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互。
扩展资料
注意事项:
1,json的键值对的键部分,必须用双引号"包裹,单引号都不行(所以如果在键中出现了关键字,也被字符化了),而js中对象没有强制要求(所以在键中不允许出现关键字)。
2,json的键值对的值部分,不允许出现函数function,undefined,NaN,但是可以有null,js中对象的值中可以出现。
3,json数据结束后,不允许出现没有意义的逗号,如:{"name":"admin","age":18,},注意看数据结尾部分18的后面的逗号,不允许出现。
参考资料来源:百度百科-Json
json数据格式解析我自己分为两种;一种是普通的,一种是带有数组形式的;
普通形式的:
服务器端返回的json数据格式如下:
复制代码代码如下:
{"userbean":{"Uid":"100196","Showname":"\u75af\u72c2\u7684\u7334\u5b50","Avtar":null,"State":1}}
分析代码如下:
复制代码代码如下:
// TODO 状态处理 500 200
int res = 0
res = httpClient.execute(httpPost).getStatusLine().getStatusCode()
if (res == 200) {
/*
* 当返回码为200时,做处理
* 得到服务器端返回json数据,并做处理
* */
HttpResponse httpResponse = httpClient.execute(httpPost)
StringBuilder builder = new StringBuilder()
BufferedReader bufferedReader2 = new BufferedReader(
new InputStreamReader(httpResponse.getEntity().getContent()))
String str2 = ""
for (String s = bufferedReader2.readLine()s != nulls = bufferedReader2
.readLine()) {
builder.append(s)
}
Log.i("cat", ">>>>>>" + builder.toString())
JSONObject jsonObject = new JSONObject(builder.toString())
.getJSONObject("userbean")
String Uid
String Showname
String Avtar
String State
Uid = jsonObject.getString("Uid")
Showname = jsonObject.getString("Showname")
Avtar = jsonObject.getString("Avtar")
State = jsonObject.getString("State")
带数组形式的:
服务器端返回的数据格式为:
复制代码代码如下:
{"calendar":
{"calendarlist":
[
{"calendar_id":"1705","title":"(\u4eb2\u5b50)ddssd","category_name":"\u9ed8\u8ba4\u5206\u7c7b","showtime":"1288927800","endshowtime":"1288931400","allDay":false},
{"calendar_id":"1706","title":"(\u65c5\u884c)","category_name":"\u9ed8\u8ba4\u5206\u7c7b","showtime":"1288933200","endshowtime":"1288936800","allDay":false}
]
}
}
分析代码如下:
复制代码代码如下:
// TODO 状态处理 500 200
int res = 0
res = httpClient.execute(httpPost).getStatusLine().getStatusCode()
if (res == 200) {
/*
* 当返回码为200时,做处理
* 得到服务器端返回json数据,并做处理
* */
HttpResponse httpResponse = httpClient.execute(httpPost)
StringBuilder builder = new StringBuilder()
BufferedReader bufferedReader2 = new BufferedReader(
new InputStreamReader(httpResponse.getEntity().getContent()))
String str2 = ""
for (String s = bufferedReader2.readLine()s != nulls = bufferedReader2
.readLine()) {
builder.append(s)
}
Log.i("cat", ">>>>>>" + builder.toString())
/**
* 这里需要分析服务器回传的json格式数据,
*/
JSONObject jsonObject = new JSONObject(builder.toString())
.getJSONObject("calendar")
JSONArray jsonArray = jsonObject.getJSONArray("calendarlist")
for(int i=0i<jsonArray.length()i++){
JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i)
CalendarInfo calendarInfo = new CalendarInfo()
calendarInfo.setCalendar_id(jsonObject2.getString("calendar_id"))
calendarInfo.setTitle(jsonObject2.getString("title"))
calendarInfo.setCategory_name(jsonObject2.getString("category_name"))
calendarInfo.setShowtime(jsonObject2.getString("showtime"))
calendarInfo.setEndtime(jsonObject2.getString("endshowtime"))
calendarInfo.setAllDay(jsonObject2.getBoolean("allDay"))
calendarInfos.add(calendarInfo)
}
总结,普通形式的只需用JSONObject ,带数组形式的需要使用JSONArray 将其变成一个list。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)