json和正则表达式

json和正则表达式,第1张

json是类似于javascript对象的一种数据格式

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。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/235596.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存