VB6.0 json操作与中文乱码处理

本周接到一个任务,用VB6.0发送HTTP请求,并处理返回的数据。

发送的是json格式字符串,接收到服务器返回的json字符串并处理。

VB6太老了,怎样处理json,是否有现成的第三方库呢?经过一番探索,找到了VBJSON这个库。

使用过程如下:

1. 下载VBJSON:http://www.ediy.co.nz/vbjson-json-parser-library-in-vb6-xidc55680.html

备用下载:https://download.csdn.net/download/zhouyingge1104/14087522

目录内容如下:

2. 在工程中引用VBJSON

右击工程名称-》添加-》模块-》现存,选择JSON.bas

右击工程名称-》添加-》类模块-》现存,选择cJSONScript.cls和cStringBuilder.cls

   

3. 添加相关引用

工程-》引用,勾选几个相关的引用项,如下图

4. 生成json字符

要生成的字符串为:

{
  "issd":
	{
	  "F_Model":"QA-1/155(UEW)",
	  "F_PanJuClass":"PT4灰",
      "F_InStockNum":20
	}
}
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字符串如下图:

{
  "issd":
	{
	  "F_Model":"QA-1/155(UEW)",
	  "F_PanJuClass":"PT4灰",
      "F_InStockNum":20
	}
}

效果:

5. 解析json字符

要解析的字符串为:

{
  "Info":
	{
	  "F_EnCode":"2010050030110301",
	  "F_PanJuClass":"PT4灰",
	  "F_CreatorUserName":"方明华"
	}
}
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后,中文恢复正常,如下图:

 

 

 

 

 

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
在VB 6.0中生成JSON文件可以通过使用Microsoft Scripting Runtime库中的FileSystemObject对象来实现。以下是生成JSON文件的步骤: 1. 首先,在VB 6.0中打开一个新的工程或现有工程。 2. 在工程中添加对Microsoft Scripting Runtime库的引用。这可以通过选择“项目”菜单下的“引用”选项,然后选择“Microsoft Scripting Runtime”来完成。 3. 在代码中声明FileSystemObject对象,并创建一个Json文件的输出流。 ``` Dim objFSO As Scripting.FileSystemObject Dim objJsonFile As Scripting.TextStream Set objFSO = New Scripting.FileSystemObject Set objJsonFile = objFSO.CreateTextFile("output.json") ``` 4. 创建一个包含要写入JSON文件的数据的字典对象。 ``` Dim objData As Scripting.Dictionary Set objData = New Scripting.Dictionary objData.Add "name", "John Doe" objData.Add "age", 25 objData.Add "email", "[email protected]" ``` 5. 使用JsonConverter库中的方法将字典对象转换为JSON字符串,并将其写入JSON文件。 ``` Dim strJson As String Dim objJsonConverter As New JsonConverter strJson = objJsonConverter.ConvertToJson(objData) objJsonFile.Write strJson ``` 6. 完成后,确保关闭并释放所使用的对象。 ``` objJsonFile.Close Set objJsonFile = Nothing Set objFSO = Nothing ``` 通过以上步骤,VB 6.0中就成功生成了一个名为output.jsonJSON文件,其中包含定义的数据。请注意,以上代码示例中使用的JsonConverter库并非VB 6.0原生支持,你可以通过搜索并使用第三方库来实现JSON的解析和转换。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鹰信息技术服务部

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值