PublicSharedFunction JsonSerializeMore_HttpJson(ByVal code AsString, ByVal msg AsString, OptionalByVal data AsObject = Nothing) 'http://bbs.csdn.net/topics/390910345 'http://www.cnblogs.com/08shiyan/p/3464028.html ' Dim cusList As New List(Of httpjson)() 'Dim cusList As New List(Of HttpJson)
Dim rg AsNew Regex("(?<={)[^:]+(?=:\\[)", RegexOptions.IgnoreCase) Dim strName AsString = rg.Match(strJson).Value Dim dt As DataTable = Nothing strJson = strJson.Substring((strJson.IndexOf("[") + 1)) strJson = strJson.Substring(0, strJson.IndexOf("]")) Dim matchs As MatchCollection = New Regex("(?<={)[^}]+(?=})").Matches(strJson) Dim i AsInteger For i = 0To matchs.Count - 1 Dim strRow AsString = matchs(i).Value Dim strRows AsString() = Split(strRow, ",")
If (dt IsNothing) Then dt = New DataTable dt.TableName = strName ForEach str AsStringIn strRows Dim dc AsNew DataColumn Dim strCell AsString() = Split(str, ":") dc.ColumnName = strCell(0).Replace("""", "") dc.ColumnName = Trim(dc.ColumnName.Replace(Chr(13), "")) dc.ColumnName = Trim(dc.ColumnName.Replace(Chr(10), "")) dt.Columns.Add(dc) Next dt.AcceptChanges() EndIf
Dim dr As DataRow = dt.NewRow()
For j AsInteger = 0To strRows.Length - 1 dr(j) = Trim(strRows(j).Split(":")(1).Replace("""", "")) Next j dt.Rows.Add(dr) dt.AcceptChanges() Next i Return dt EndFunction