怎样提取josn中的team_id

onlymearmstr 2016-09-20 04:40:11
{"total":30,"rows":[{"dynasty_id":35,"dynasty_id_val":"35","id":143,"pk_val":"143","pof_lose_match_counts":0,"pof_win_match_counts":0,"pof_win_persent":"0","point":256,"sea_all_match_counts":98,"sea_lose_match_counts":19,"sea_win_match_counts":79,"sea_win_persent":"80.61%","team_id":"太阳","team_id_val":"22","team_status":"常规赛中","team_status_val":"2","user_id":"山西","user_id_val":"5"},{"dynasty_id":35,"dynasty_id_val":"35","id":144,"pk_val":"144","pof_lose_match_counts":0,"pof_win_match_counts":0,"pof_win_persent":"0","point":175,"sea_all_match_counts":69,"sea_lose_match_counts":16,"sea_win_match_counts":53,"sea_win_persent":"76.81%","team_id":"开拓者","team_id_val":"23","team_status":"常规赛中","team_status_val":"2","user_id":"北极","user_id_val":"6"},{"dynasty_id":35,"dynasty_id_val":"35","id":139,"pk_val":"139","pof_lose_match_counts":0,"pof_win_match_counts":0,"pof_win_persent":"0","point":35,"sea_all_match_counts":18,"sea_lose_match_counts":8,"sea_win_match_counts":10,"sea_win_persent":"55.55%","team_id":"鹈鹕","team_id_val":"18","team_status":"常规赛中","team_status_val":"2","user_id":"小鱼","user_id_val":"33"}]}

提取处理放到数组team里就行
dim team(100)
...全文
569 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
无·法 2016-09-25
  • 打赏
  • 举报
回复
不放弃任何使用正则的机会。。
'此代码由“正则测试工具V1.1.43”自动生成,请直接调用TestReg过程
Private Sub TestReg()
Dim strData As String
Dim reg As Object
Dim matchs As Object, i As Integer
strData = ",""team_id"":""开拓者"",""team_id_val"":""23"", 。。。。。"
Set reg = CreateObject("vbscript.regExp")
reg.Global = True
reg.MultiLine = True
reg.Pattern = """team_id"":""(.*?)"""
Set matchs = reg.Execute(strData)
For i = 0 To matchs.Count - 1
Debug.Print "(" & i + 1 & ")." & matchs(i).SubMatches(0) & " ";
Next
End Sub


太阳
开拓者
鹈鹕
笨狗先飞 2016-09-24
  • 打赏
  • 举报
回复
赵4老师 2016-09-21
  • 打赏
  • 举报
回复
引用 4 楼 Chen8013 的回复:
开头的:"total":30 是不是表示有30条“记录”?你只贴出来了一部分数据吧? 我感觉用“针对性”的代码进行字符串分析、拆解,也并不难嘛。
Private Sub Command1_Click()
Dim s As String
Dim team(100) As String
Dim i As Long
Dim j As Long
Dim k As Long
Dim n As Long
    s = "{""total"":30,""rows"":[{""dynasty_id"":35,""dynasty_id_val"":""35"",""id"":143,""pk_val"":""143"",""pof_lose_match_counts"":0,""pof_win_match_counts"":0,"
    s = s + """pof_win_persent"":""0"",""point"":256,""sea_all_match_counts"":98,""sea_lose_match_counts"":19,""sea_win_match_counts"":79,""sea_win_persent"":"
    s = s + """80.61%"",""team_id"":""太阳"",""team_id_val"":""22"",""team_status"":""常规赛中"",""team_status_val"":""2"",""user_id"":""山西"",""user_id_val"":""5""},"
    s = s + "{""dynasty_id"":35,""dynasty_id_val"":""35"",""id"":144,""pk_val"":""144"",""pof_lose_match_counts"":0,""pof_win_match_counts"":0,""pof_win_persent"":"
    s = s + """0"",""point"":175,""sea_all_match_counts"":69,""sea_lose_match_counts"":16,""sea_win_match_counts"":53,""sea_win_persent"":""76.81%"",""team_id"":"
    s = s + """开拓者"",""team_id_val"":""23"",""team_status"":""常规赛中"",""team_status_val"":""2"",""user_id"":""北极"",""user_id_val"":""6""},{""dynasty_id"":35,"
    s = s + """dynasty_id_val"":""35"",""id"":139,""pk_val"":""139"",""pof_lose_match_counts"":0,""pof_win_match_counts"":0,""pof_win_persent"":""0"",""point"":35,"
    s = s + """sea_all_match_counts"":18,""sea_lose_match_counts"":8,""sea_win_match_counts"":10,""sea_win_persent"":""55.55%"",""team_id"":""鹈鹕"","
    s = s + """team_id_val"":""18"",""team_status"":""常规赛中"",""team_status_val"":""2"",""user_id"":""小鱼"",""user_id_val"":""33""}]}"
    n = 0
    k = 1
    Do
        k = InStr(k, s, """team_id"":""")
        If k > 0 Then
            k = k + Len("""team_id"":""")
            j = InStr(k, s, """")
            If j > 0 Then
                n = n + 1
                If n > 100 Then Exit Do
                team(n) = Mid(s, k, j - k)
                k = j + 1
            Else
                Exit Do
            End If
        Else
            Exit Do
        End If
    Loop
    For i = 1 To n
        Debug.Print "team(" + CStr(i) + "):[" + team(i) + "]"
    Next
End Sub
'team (1): [太阳]
'team (2): [开拓者]
'team (3): [鹈鹕]

舉杯邀明月 2016-09-20
  • 打赏
  • 举报
回复
开头的:"total":30 是不是表示有30条“记录”?你只贴出来了一部分数据吧? 我感觉用“针对性”的代码进行字符串分析、拆解,也并不难嘛。
  • 打赏
  • 举报
回复
怎样提取josn中的team_id,我可以写QQ2776478814
onlymearmstr 2016-09-20
  • 打赏
  • 举报
回复
Set ojs = CreateObject("msscriptcontrol.scriptcontrol"): ojs.Language = "jScript"
y = ojs.eval("eval(" & strText & ")['rows']['team_id']")
MsgBox y

不行啊

7,757

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧