如何使用VBJSON解析vb6中的json字符串

时间:2017-04-18 02:33:29

标签: json parsing vb6

我在VB6中调用一个Web服务,它返回一个json字符串作为响应。我能够在一个字符串中保存响应。现在我想分别显示每个参数如何从字符串中提取值?示例字符串在这里:

{
    "id": "22144",
    "t" : "AAPL",
    "e" : "NASDAQ",
    "l" : "108.00",
    "l_fix" : "108.00",
    "l_cur" : "108.00",
    "s": "2",
    "ltt":"4:00PM EDT",
    "lt" : "Aug 10, 4:00PM EDT",
    "lt_dts" : "2016-08-10T16:00:01Z",
    "c" : "-0.81",
    "c_fix" : "-0.81",
    "cp" : "-0.74",
    "cp_fix" : "-0.74",
    "ccol" : "chr",
    "pcls_fix" : "108.81",
    "el": "107.98",
    "el_fix": "107.98",
    "el_cur": "107.98",
    "elt" : "Aug 10, 5:16PM EDT",
    "ec" : "-0.02",
    "ec_fix" : "-0.02",
    "ecp" : "-0.02",
    "ecp_fix" : "-0.02",
    "eccol" : "chr",
    "div" : "0.57",
    "yld" : "2.11"
}

2 个答案:

答案 0 :(得分:3)

我发现 VB-JSON 非常适合在VB6中解析json。

您可以从这里下载。

VB-JSON: A Visual Basic 6 (VB6) JSON Parser Class Library

您下载的.zip文件将包含一个示例项目和库,名为JSON.bas

主解析器函数是JSON.parse,你将json字符串作为参数传递给它。

因此,在您的项目中,您只需要包含/添加JSON.bas文件。

样本用法(来自示例项目):

Private Sub cmdObjToJSON_Click()

   Dim p As Object

   Dim sInputJson As String
   sInputJson = "{ width: '200', frame: false, height: 130, bodyStyle:'background-color: #ffffcc;',buttonAlign:'right', items: [{ xtype: 'form',  url: '/content.asp'},{ xtype: 'form2',  url: '/content2.asp'}] }"

   MsgBox "Input JSON string: " & sInputJson

   ' sets p
   Set p = JSON.parse(sInputJson)

   MsgBox "Parsed object output: " & JSON.toString(p)

   MsgBox "Get Bodystyle data: " & p.Item("bodyStyle")

   MsgBox "Get Form Url data: " & p.Item("items").Item(1).Item("url")


   p.Item("items").Item(1).Add "ExtraItem", "Extra Data Value"

   MsgBox "Parsed object output with added item: " & JSON.toString(p)


End Sub

适用于您的情况。以下内容可能会起作用(如果需要,可以进行一些调整)。

Dim parsedJsonObject As Object
Set parsedJsonObject = JSON.parse(yourJsonStringVariable)

'Print the ticker ( t in your json )
Debug.Print parsedJsonObject.Item("t")

答案 1 :(得分:1)

您可以在http://json.org/中找到适用于Visual Basic的JSON解析器库。 您可以使用VB-JSON或PW.JSON。