【vb.net】json文件的读写

这里提供的方式只是个人的摸索,肯定不是正常的方法。由于vb实在缺例子,学习正经的json读写方法有点花时间,而且我也不是专业写程序的,所以秉着“速度要紧,能用就好”宗旨,决定自写json的解析。

======正文=====

对于json文件的解析,我的思路是:

1.字符串去格式化,将无意义的字符去掉(空格、换行等)

2.将字符串对象化,生成为三个数组(因为对类模块使用不熟练,所以用了一个非常土的方法),第一个是Key的名字集合,第二个是数值的集合,第三个是数值类型的集合。

3.能将对象化后的数据,进行修改/添加/删除的操作。

4.将json对象转换为json字符串。

5.将json字符串格式化,转换为便于阅读的格式。

=====数组函数============

 Class Arr
        Function Cut(ArrayObject, Index) '将指定位置的元素cong
            Dim ArrCount, OArr(), i, ci
            ArrCount = UBound(ArrayObject)
            If ArrCount = 0 Then
                Cut = Reset()
                Exit Function
            End If
            ReDim OArr(ArrCount - 1)
            ci = 0
            For i = 0 To ArrCount
                If Index <> i Then
                    OArr(ci) = ArrayObject(i)
                    ci = ci + 1
                End If
            Next
            Cut = OArr
        End Function
        Function Reset()  '将变量初始化为数组
            Dim arr(0)
            arr(0) = "***Arr*initial***"
            Reset = arr
        End Function
        Function Add(ArrayObject, item)
            Dim ArrCount, OArr(), i
            If TypeName(ArrayObject(0)) = "String" Then
                If ArrayObject(0) = "***Arr*initial***" Then
                    ReDim OArr(0)
                    OArr(0) = item
                Else
                    ArrCount = UBound(ArrayObject)
                    ReDim OArr(ArrCount + 1)
                    For i = 0 To ArrCount
                        OArr(i) = ArrayObject(i)
                    Next
                    OArr(ArrCount + 1) = item
                End If
            Else
                ArrCount = UBound(ArrayObject)
                ReDim OArr(ArrCount + 1)
                For i = 0 To ArrCount
                    OArr(i) = ArrayObject(i)
                Next
                OArr(ArrCount + 1) = item
            End If
            Add = OArr
        End Function
        Function IsExistInArray(ArrayObject, MatchingValue) '判断数组中是否存在某一元素
            Dim i
            Dim RB As Boolean
            RB = False
            For i = 0 To UBound(ArrayObject)
                If MatchingValue = ArrayObject(i) Then
                    RB = True
                    Exit For
                End If
            Next
            IsExistInArray = RB
        End Function
        Function GetIndex(ArrayObject, MatchingValue)  '返回元素所在的位置
            Dim i
            Dim RB, IndexArr
            IndexArr = Reset()
            For i = 0 To UBound(ArrayObject)
                If MatchingValue = ArrayObject(i) Then
                    IndexArr = i
                    Exit For
                End If
            Next
            GetIndex = IndexArr
        End Function
        Function GetIndexs(ArrayObject, MatchingValue) '返回元素所在的位置(数组)
            Dim i
            Dim RB, IndexArr
            IndexArr = Reset()
            For i = 0 To UBound(ArrayObject)
                If MatchingValue = ArrayObject(i) Then
                    IndexArr = Add(IndexArr, i)
                End If
            Next
            GetIndexs = IndexArr
        End Function
    End Class
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值