VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

簡單的json 字串拆解 分享

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
CPS0204



註冊時間: 2014-08-24
文章: 475


第 1 樓

發表發表於: 星期四 七月 11, 2024 9:31 am    文章主題: 簡單的json 字串拆解 分享 引言回覆

CLEAR


LCJSONSTRING = '{"key1": "值value1BB", "key2A": "值value2FFF", "key3": "value值34443", "key4": "value4234值", "key5": "值value5"}'
LCJSONSTRING = STRTRAN(LCJSONSTRING, '{', '') &&去除多餘符號
LCJSONSTRING = STRTRAN(LCJSONSTRING, '}', '') &&去除多餘符號
LCJSONSTRING = STRTRAN(LCJSONSTRING, '"', '') &&去除多餘符號
LCJSONSTRING = STRTRAN(LCJSONSTRING, ['], '') &&去除多餘符號
=MESSAGEBOX('原本的json字串:'+CHR(13)+LCJSONSTRING)

LOJSONOBJECT = CREATEOBJECT("Empty")
DIMENSION LAPAIRS[1]
J=ALINES(LAPAIRS, LCJSONSTRING, 1, ",")

FOR EACH LCPAIR IN LAPAIRS
LOCAL LNCOLONPOS
LNCOLONPOS = AT(":", LCPAIR)
* =MESSAGEBOX(TRANSFORM(LCPAIR)+' '+TRANSFORM(lnColonPos))
* 取key和值
LCKEY = ALLTRIM(LEFT(LCPAIR, LNCOLONPOS - 1))
LCVALUE = ALLTRIM(SUBSTR(LCPAIR, LNCOLONPOS + 1))
=MESSAGEBOX(TRANSFORM(LCPAIR)+' =分離後得到 '+LCKEY+' '+LCVALUE)
ADDPROPERTY(LOJSONOBJECT, LCKEY, LCVALUE) &&添加屬性的子件
NEXT

? LOJSONOBJECT.KEY1
? LOJSONOBJECT.KEY2A
? LOJSONOBJECT.KEY3
? LOJSONOBJECT.KEY4
? LOJSONOBJECT.KEY5


缺點: 每組鍵值及後面的值,不能有逗號 (,) (") ,('),等字元........否則報錯
只能簡單地處理

備註:json文串的檢查網址 https://jsonlint.com/
回頂端
檢視會員個人資料 發送私人訊息
lygcw9603



註冊時間: 2011-12-25
文章: 130


第 2 樓

發表發表於: 星期四 七月 11, 2024 8:39 pm    文章主題: 引言回覆

用alines()更方便
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作