VB6 0 json操作與中文亂碼處理

2021-10-14 08:45:55 字數 2116 閱讀 2846

本週接到乙個任務,用vb6.0傳送http請求,並處理返回的資料。

傳送的是json格式字串,接收到伺服器返回的json字串並處理。

vb6太老了,怎樣處理json,是否有現成的第三方庫呢?經過一番探索,找到了vbjson這個庫。

使用過程如下:

目錄內容如下:

2. 在工程中引用vbjson

右擊工程名稱-》新增-》模組-》現存,選擇json.bas

右擊工程名稱-》新增-》類模組-》現存,選擇cjsonscript.cls和cstringbuilder.cls

3. 新增相關引用

工程-》引用,勾選幾個相關的引用項,如下圖

4. 生成json字元

要生成的字串為:

}

set p = json.parse("{}")

set issd = json.parse("{}")

p.add "issd", issd

p.item("issd").add "f_model", "qa-1/155(uew)"

p.item("issd").add "f_panjuclass", "pt4灰"

p.item("issd").add "f_instocknum", 20

textcontent.text = json.tostring(p)

生成的json字串如下圖:

}

效果:

5. 解析json字元

要解析的字串為:

}

dim sinputjson as string

sinputjson = ...

' sets p

set p = json.parse(sinputjson)

dim str1 as string

dim str2 as string

dim str3 as string

str1 = p.item("info").item("f_encode")

str2 = p.item("info").item("f_panjuclass")

str3 = p.item("info").item("f_creatorusername")

msgbox str1 & vbcrlf & str2 & vbcrlf & str3

效果:

到這裡,生成json和解析json的問題都解決了。

關於亂碼問題的記錄:

預設的vbjson版本中,如果json物件中帶有中文和特殊符號,則通過json.tostring生成出來的字串中會有奇怪的字元,如下圖:

費了一番功夫,找到了原因,原來是vbjson庫里的問題:在模組json中,有個tostring方法,對字串做了一次encode,導致中文字元變成奇怪的符號。

解決的辦法是把這個encode方法去掉:

去掉encode後,中文恢復正常,如下圖:

VB6 0 檔案操作語句

open語句 能夠對檔案輸入 輸出 i o 語法 openpathname formode accessaccess lock as filenumber len reclength open語句的語法具有以下幾個部分 部分描述 pathname 必要。字串表示式,指定檔名,該檔名可能還包括目錄 資...

VB6 0中MsgBox函式的Bug

這個bug我發現已久但沒有貼出來,今天貼出來與大家共享以下。msgbox函式真的很方便,但大家不妨試試將乙個form startupposition設為2 用api函式setwindowpos置於最上,然後在這個form中呼叫msgbox函式,怎麼樣,程式沒反應了吧。其實它的原理很簡單,msgbox...

VB6 0中的視窗控制技巧(2)

讓視窗一直在上面 很多流行軟體都有這樣乙個選項 always on top。它可以讓視窗在最上面,別的視窗不能覆蓋它。我們在 vb 中,可以使用下面的方法來實現 private const swp nosize h1 private const swp nomove h2 private const...