关于易语言的json数据处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于易语言的json数据处理相关的知识,希望对你有一定的参考价值。
原json数据详见: https://www.biliplus.com/api/view?id=19422453 有一组数据,已知page信息,从数据中调取相应的cid信息 如图所示(图示为数据中有用的部分),即当page=1时,出来的cid=31673524,page=2时,cid=31673525 (注:连续的情况纯属巧合,请让程序根据page信息从数据里面找对应的cid;图示数据前后的其他无用数据需舍弃,前后无用数据无固定长度;page变化范围0~99,cid为整数) 授人以鱼不如授人以渔,你就把鱼和渔都授给我把[dog]
参考技术A.版本
2
.支持库
spec
.子程序
__启动窗口_创建完毕
.局部变量
网页文本,
文本型
.局部变量
json,
类_json
.局部变量
i,
整数型
网页文本
=
网页_访问S
(“https://www.biliplus.com/api/view?id=19422453”,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
)
网页文本
=
文本_取出中间文本
(网页文本,
“list”
+
#引号
+
“:”,
“,”
+
#引号
+
“v2_app_api”,
,
)
网页文本
=
文本_替换
(网页文本,
,
,
,
“,”
+
#引号
+
“part”,
“,”
+
#引号
+
“part1”,
,
,
,
,
,
,
,
)
调试输出
(网页文本)
.如果
(json.解析
(网页文本)
=
真)
.计次循环首
(json.成员数
(),
i)
调试输出
(“page:”
+
json.取通用属性
(“[”
+
到文本
(i
-
1)
+
“].page”,
真),
“
cid:”
+
json.取通用属性
(“[”
+
到文本
(i
-
1)
+
“].cid”,
真))
.计次循环尾
()
.否则
信息框
(“解析失败!”,
0,
,
)
关于JSONP的一些易忽略的细节
本人前端渣渣,本文记录的是开始自学时,我自己容易混淆和忽略的细节。。。
1-JSONP,javascript object notation with padding,翻译成中文就是“参数式JSON”、“填充式JSON”。有没有霍然开朗?好多书里翻译成“有填充的JSON”,意思正好相反,害人不浅。
2-JSONP本质就是一个前后端商量好的协议,至今没有被W3C官方认可,但确是当今最流行的跨域手段。W3C官方认可的是CORS。
3-JSONP的原理只有两点:一、动态建立script标签实现异步。二、利用src属性实现跨域。ajax尚且可以实现同步(虽然几乎没有适用场景),但JSONP只能实现异步,因为依据动态建立script标签这一点,使得JSONP想同步都不行。比如下面这段代码:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title></title> 5 </head> 6 <body> 7 <script type="text/javascript"> 8 var scn = document.createElement(‘script‘); 9 scn.src = ‘a.js‘; 10 document.getElementsByTagName(‘head‘)[0].appendChild(scn); 11 alert(‘b‘); 12 </script> 13 </body> 14 </html>
alert(‘a‘);//a.js
结果先弹出b,在弹出a。加不加async属性都一样。
结论就是:动态添加进去的script标签,无论指定什么,都是异步的,指定同步异步的功能(比如defer/async属性)只对写死到HTML里的标签有效。
依据src属性的在设计之初压根也没有跨域与否的概念,JSONP也可以实现同步。简而言之,JSONP可以用来实现异步跨域、异步同域两种情况。
4-在jQuery里,JSONP被封装在了AJAX中。这一度给刚接触AJAX和JSONP的我带来一个困惑的认识:JSONP是AJAX的子集。当然,这样的认识是错误的。JSONP只是用来弥补AJAX中无法异步跨域的不足,并不是子集。
以上是关于关于易语言的json数据处理的主要内容,如果未能解决你的问题,请参考以下文章