标题: [文本处理] 新人求助BAT如何取JSON对象 [打印本页]
作者: jkpan 时间: 2021-8-15 10:31 标题: 新人求助BAT如何取JSON对象
本帖最后由 jkpan 于 2021-8-15 14:58 编辑
BAT发起get请求返回 JSON数据如何取JSON对象?
比如我发起一个请求
https://json.m3u8.tv:7788/json.php?url=https://v.qq.com/x/cover/mzc00200lxzhhqz/w0040l6kwqw.html
返回数据如下
{"code":200,"url":"https:\/\/cdn.oss-cn-hangzhou.myqcloud.com.xuetuiguang.cn\/m3u8video\/shfb07.m3u8","type":"hls","player":"M3U8.TV","msg":"\u6570\u636e\u6b63\u5e38","title":"\u76f4\u94feM3U8\u64ad\u653e"}
我需要把: code、url、type、player 的对象值取出来赋值给变量怎么写,求大佬赐教、这玩意没Linux的好写的
求助要最简单,且不用安装其他扩展的方法!
win下awk、sed、grep、好像都要安装,有其他方法吗,比如字符串截取,先删除URL:然后再删除尾部的,以后的内容,又或者时取两个字符中间文本,不会BAT求助
作者: cmd1152 时间: 2021-8-15 10:38
- URL=https:\/\/subtitle.apdcdn.tc.qq.com\/vipzj.video.tc.qq.com\/gzc_1000102_0b53fmadmaaa6uakyiywrzq4ak6dgytqamsa.f2.mp4?vkey=F826AD23AB39A16CA31C7BF02771C96D855A8BF471723D39DE1686CF21ABC04DC9EEC07EFF9DEED81B5FC657BEC3A4F2267C4F4E8CCBED53EA49D5A78BA38951DFD933B5A95B58698C188E8E604DE17A1B83CBB4521CE89E2A30D32E1FA3340C53641E2323CCD0968FBD5A1328C7C58F03799887BE48DE77&from=WWW.M3U8.TV
复制代码
复制代码
复制代码
- msg=www.m3u8.tv\u65e0\u5e7f\u544a\u89e3\u6790!
复制代码
- title=\u817e\u8baf\u89c6\u9891
复制代码
作者: newswan 时间: 2021-8-15 11:00
powershell- $file = "1.txt"
- (get-content -path $file | ConvertFrom-Json ).url
复制代码
作者: jkpan 时间: 2021-8-15 13:54
回复 2# cmd1152
我知道解析出来是这个,我是说我发起GET请求,返回的是JSON数据我要解析,取对应的值
比如发起这个请求,
https://json.m3u8.tv:7788/json.php?url=https://v.qq.com/x/cover/mzc00200lxzhhqz/d0040q5zhb7.html
返回
{"code":200,"url":"https:\/\/cdn.oss-cn-hangzhou.myqcloud.com.xuetuiguang.cn\/m3u8video\/shfb10.m3u8","type":"hls","player":"M3U8.TV","msg":"\u6570\u636e\u6b63\u5e38","title":"\u76f4\u94feM3U8\u64ad\u653e"}
我需要取,code、url、type的值,再不安装第三方插件的情况下,怎么取的,
作者: jkpan 时间: 2021-8-15 13:57
回复 3# newswan
大佬,你这个确实可以,我需要在CMD运行的有吗!感谢大佬
作者: idwma 时间: 2021-8-15 16:09
- @echo off
- for /f tokens^=2^,4^,5^,7^ delims^=^:^,^"^{^} %%a in ('"echo;{"code":200,"url":"https:\/\/cdn.oss-cn-hangzhou.myqcloud.com.xuetuiguang.cn\/m3u8video\/shfb07.m3u8","type":"hls","player":"M3U8.TV","msg":"\u6570\u636e\u6b63\u5e38","title":"\u76f4\u94feM3U8\u64ad\u653e"}"') do echo %%a %%b:%%c %%d
- pause
复制代码
作者: newswan 时间: 2021-8-15 17:05
回复 5# jkpan - @cd /d %~dp0 & powershell -NoProfile -ExecutionPolicy Bypass -command "Get-Content '%~f0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" & pause & exit/b
- $file = "1.txt"
- (get-content -path $file | ConvertFrom-Json ).url
复制代码
作者: jkpan 时间: 2021-8-15 19:58
回复 7# newswan
大佬这个好像在CMD命令行跑不了,
其实我就是想发起一个GET请求 返回取返回的URL和CODE TYPE的值赋值给一个变量,看来是没法搞了
https://json.m3u8.tv:7788/json.php?url=https://v.qq.com/x/cover/mzc00200lxzhhqz/w0040l6kwqw.html
返回数据如下
{"code":200,"url":"https:\/\/cdn.oss-cn-hangzhou.myqcloud.com.xuetuiguang.cn\/m3u8video\/shfb07.m3u8","type":"hls","player":"M3U8.TV","msg":"\u6570\u636e\u6b63\u5e38","title":"\u76f4\u94feM3U8\u64ad\u653e"}
我需要把: code、url、type、player 的对象值取出来赋值给变量怎么写
作者: jkpan 时间: 2021-8-15 19:58
本帖最后由 jkpan 于 2021-8-15 20:23 编辑
回复 6# idwma
win10 果然可以 我学习学习 套一下看能不能搞再来请教呢!已经快接近成功了,只是我返回值有可能顺序和这个不一样,如果能以CODE URL TYPE这眼的关键词去取就完美了
作者: Batcher 时间: 2021-8-15 21:01
回复 1# jkpan
Win下gawk、sed、grep下载即用,不需要安装:
http://bcn.bathome.net/s/tool/index.html?key=gawk
http://bcn.bathome.net/s/tool/index.html?key=sed
http://bcn.bathome.net/s/tool/index.html?key=grep
处理JSON也可以用这个:
http://bcn.bathome.net/s/tool/index.html?key=jq
作者: idwma 时间: 2021-8-15 21:40
回复 9# jkpan - 1<1/* :
- @echo off
- echo;"{"code":200,"url":"https:\/\/cdn.oss-cn-hangzhou.myqcloud.com.xuetuiguang.cn\/m3u8video\/shfb07.m3u8","type":"hls","player":"M3U8.TV","msg":"\u6570\u636e\u6b63\u5e38","title":"\u76f4\u94feM3U8\u64ad\u653e"}"|cscript /nologo /e:jscript "%~f0"
- pause
- goto :eof
- */
- var stdout=WScript.StdOut,stdin=WScript.StdIn;
- var reg=/.*url":"(.*?)".*/;
- var reg1=/.*type":"(.*?)".*/;
- var reg2=/.*code":(.*?),".*/;
- while (!stdin.AtEndOfStream){
- var str = stdin.ReadLine();
- if(reg.test(str))stdout.WriteLine(str.replace(reg, '$1'));
- if(reg1.test(str))stdout.WriteLine(str.replace(reg1, '$1'));
- if(reg2.test(str))stdout.WriteLine(str.replace(reg2, '$1'));
- }
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |