續如何使用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;"><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></P></LINGO-BODY><LINGO-SUB id="lingo-sub-598292" slang="en-US">Re: 繼續如何使用 JSL 處理從網絡下載的 JSON 文件?</LINGO-SUB><LINGO-BODY id="lingo-body-598292" slang="en-US"><P>謝謝!</P></LINGO-BODY><LINGO-SUB id="lingo-sub-229168" slang="en-US">Re: 繼續如何使用 JSL 處理從網絡下載的 JSON 文件?</LINGO-SUB><LINGO-BODY id="lingo-body-229168" slang="en-US"><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;"><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></P></LINGO-BODY><LINGO-SUB id="lingo-sub-229165" slang="en-US">Re: 繼續如何使用 JSL 處理從網絡下載的 JSON 文件?</LINGO-SUB><LINGO-BODY id="lingo-body-229165" slang="en-US"><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;"><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();">使用 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;"><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();">內部 " 用 \!</SPAN></SPAN></P></LINGO-BODY><LINGO-SUB id="lingo-sub-229160" slang="en-US">Re: 繼續如何使用 JSL 處理從網絡下載的 JSON 文件?</LINGO-SUB><LINGO-BODY id="lingo-body-229160" slang="en-US"><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 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( {"…… "} )