续如何使用JSL处理从网络下载的JSON文件?大家好!我继续尝试JSL下载WEB JSON文件,由于JSON结构不同,成功下载JSL日志中的JSON,只是JSON文件的结构不同,不知道如何用 JSL 将其排列成表格。
url="http://pdfm.eastmoney.com/EM_UBG_PDTI_Fast/api/js?rtntype=5&token=4f1862fc3b5e77c150a2b985b12db0fd&cb=jQuery18308309053384067384_1570754165747&id=6037121&type=m5k&authorityType=fa&_=1570754540714";
dt = Open(url, JSON );

用浏览器下载JSON文件,去掉错误的log信息,再用JSL处理,可以得到表格,但表格不是我想要的,请高手指点,万分感谢!
</CODE></PRE><P> </P><P> </P><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2019-10-11_15-14.png" style="width: 793px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2019-10-11_15-14.png" style="width: 793px;"><span class="lia-inline-image-display-wrapper" image-alt="2019-10-11_15-14.png" style="width: 793px;"><img src="https://us.v-cdn.net/6038925/uploads/images/19635i3FCFD78C23C486ED/2019-10-11_15-14.png" role="button" title="2019-10-11_15-14.png" alt="2019-10-11_15-14.png" /></span></SPAN></SPAN></P></LINGO-BODY><LINGO-SUB id="lingo-sub-598292" slang="en-US" mode="NONE">Re: 继续如何使用 JSL 处理从网络下载的 JSON 文件?</LINGO-SUB><LINGO-BODY id="lingo-body-598292" slang="en-US" mode="NONE"><P>谢谢!</P></LINGO-BODY><LINGO-SUB id="lingo-sub-229168" slang="en-US" mode="NONE">Re: 继续如何使用 JSL 处理从网络下载的 JSON 文件?</LINGO-SUB><LINGO-BODY id="lingo-body-229168" slang="en-US" mode="NONE"><P>好的。</P><P>谢谢克雷格!</P><P> </P><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="2019-10-12_22-54.png" style="width: 427px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="2019-10-12_22-54.png" style="width: 427px;"><span class="lia-inline-image-display-wrapper" image-alt="2019-10-12_22-54.png" style="width: 427px;"><img src="https://us.v-cdn.net/6038925/uploads/images/19671i81D5B2D99FFC23E3/2019-10-12_22-54.png" role="button" title="2019-10-12_22-54.png" alt="2019-10-12_22-54.png" /></span></SPAN></SPAN></P></LINGO-BODY><LINGO-SUB id="lingo-sub-229165" slang="en-US" mode="NONE">Re: 继续如何使用 JSL 处理从网络下载的 JSON 文件?</LINGO-SUB><LINGO-BODY id="lingo-body-229165" slang="en-US" mode="NONE"><P>这有一些关于<EM>全球替换</EM>选项和一些例子:</P><P><A href="https://community.jmp.com/t5/Uncharted/Regex/ba-p/21008" target="_blank">https://community.jmp.com/t5/Uncharted/Regex/ba-p/21008</A></P><P> </P><P>我不确定这个角色是什么;您可能需要使用 Unicode 转义符来表示它,请在此处查看 \!Uxxxx:</P><P><A href="https://community.jmp.com/t5/Discussions/best-practices-around-special-characters-in-JSL/m-p/214000" target="_blank">https://community.jmp.com/t5/Discussions/best-practices-around-special-characters-in-JSL/mp/214000</A></P><P> </P><P>我*认为*真正发生的是 JMP 正在转义一些引号,这看起来很混乱。 使用<EM>写()</EM>函数查看没有转义的测试:</P><P> </P><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="using write() to see strings without escapes" style="width: 759px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="using write() to see strings without escapes" style="width: 759px;"><span class="lia-inline-image-display-wrapper" image-alt="using write() to see strings without escapes" style="width: 759px;"><img src="https://us.v-cdn.net/6038925/uploads/images/19667iFB78CCABEB3149F7/Capture.PNG" role="button" title="Capture.PNG" alt="using write() to see strings without escapes" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">using write() to see strings without escapes</span></span><SPAN class="lia-inline-image-caption" onclick="event.preventDefault();">using write() to see strings without escapes</SPAN></SPAN><SPAN class="lia-inline-image-caption" onclick="event.preventDefault();">使用 write() 查看没有转义的字符串</SPAN></SPAN></P><P>我在逗号后用换行符重新格式化了文本;它实际上是从 JSON 源发送时一起运行的。 中的数据<EM>TXT</EM>只是 " 但当 JMP 将值显示为带引号的字符串(例如使用打印)时,JMP 将使用 \! 转义嵌入的 "。</P><P> </P><P>这是使用 print(),注意第一个和最后一个 " 没有被转义:</P><P> </P><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="internal " are escaped with \!" style="width: 812px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="internal " are escaped with \!" style="width: 812px;"><span class="lia-inline-image-display-wrapper" image-alt="internal " are escaped with \!" style="width: 812px;"><img src="https://us.v-cdn.net/6038925/uploads/images/19669i63D97B19AB857285/Capture3.PNG" role="button" title="Capture3.PNG" alt="internal " are escaped with \!" /><span class="lia-inline-image-caption" onclick="event.preventDefault();">internal " are escaped with \!</span></span><SPAN class="lia-inline-image-caption" onclick="event.preventDefault();">internal " are escaped with \!</SPAN></SPAN><SPAN class="lia-inline-image-caption" onclick="event.preventDefault();">内部 " 用 \!</SPAN></SPAN></P></LINGO-BODY><LINGO-SUB id="lingo-sub-229160" slang="en-US" mode="NONE">Re: 继续如何使用 JSL 处理从网络下载的 JSON 文件?</LINGO-SUB><LINGO-BODY id="lingo-body-229160" slang="en-US" mode="NONE"><P><SPAN class="transSent">我不知道怎么写<SPAN>正则表达式</SPAN>替换 JSL 中的代码。</SPAN><SPAN class="transSent">非常感谢!</SPAN></P><P> </P><P><SPAN class="transSent">将以下三个字符全部替换<BR />\”!</SPAN></P><P> </P><PRE><CODE class=" language-jsl">txt=loadtextfile("C:\Users\Administrator\Desktop\Untitled 6.txt");
txt = regex(txt,"\\","");
Re: 继续如何使用 JSL 处理从网络下载的 JSON 文件?我尝试将常规处理后的 dt 保存为 TXT 文本,不使用 JSL 表头,然后使用 JSL 将文本读取为 TXT。 如何用正则表达式将TXT的指定字符替换为null?

Re: 继续如何使用 JSL 处理从网络下载的 JSON 文件?感谢 Craige_Hales!使用此正则表达式代码,我能够结合在 VBA 中处理正则表达式的方法。
但是在 JSL 中使用正则表达式处理是我将继续学习的东西。Re: 继续如何使用 JSL 处理从网络下载的 JSON 文件?你必须分开数据柱子; JMP 完全导入了 JSON 文件中的内容...没有其他列名和数据是一个单一的领域。 您可以使用类似于此的公式创建新列(使用您需要的名称):
use the word() function with comma for the delimiter; this example selects the 3rd item between commasuse the word() function with comma for the delimiter; this example selects the 3rd item between commas使用带逗号的 word() 函数作为分隔符;此示例选择逗号之间的第 3 个项目
您可以这样做以避免手动编辑下载:
txt=loadtextfile("http://pdfm.eastmoney.com/EM_UBG_PDTI_Fast/api/js?rtntype=5&token=4f1862fc3b5e77c150a2b985b12db0fd&cb=jQuery18308309053384067384_1570754165747&id=6037121&type=m5k&authorityType=fa&_=1570754540714");
txt = regex(txt,"\((.*)\)$","\1"); // strip the jQuery18308309053384067384_1570754165747( ...json data... ) wrapper
dt = jsontodatatable(txt);正则表达式使用
\(——这是一个字面的左括号
(.*) -- 这是一个捕获组,它尽可能多地捕获到第一个反向引用中
\)$ -- 这是一个文字右括号,在字符串的末尾
然后
“\1”表示正则表达式的结果是捕获组在括号之间找到的任何内容。
Re: 继续如何使用 JSL 处理从网络下载的 JSON 文件?如何编写JSL直接从WEB下载JSON并自动处理得到归一化表?谢谢!
Re: 继续如何使用 JSL 处理从网络下载的 JSON 文件?
我搜索了可以用此代码处理的帖子,但尝试过但失败了。
headers( {"…… "} )