从周老师的书里挖个Json部分的总结分享给大家。狐表官方没有细说这一块,在前后端分离开发亟需扎实json利用

发表日期: 2020-02-04

file

1概括

引用周老师的话:

JToken是一个基类,它不仅可以用来表示JObject(json对象),也可以表示JArray(json数组)、JProperty(json属性)和JValue(json原生值)。

当无法确定客户端返回的json字符串类型时,都可使用JToken来表示,然后再根据JToken的type属性值来判断其究竟是哪种类型,最后再给出相应的处理方案。

  1. JToken:抽象基类,最强大佬。可用于表示并存放各种JSON结果,包括JObject、JArray、JProperty、JValue。

  2. JObject:用于操作JSON对象。既可使用parse方法通过现有的字符串解析生成,也可通过new关键字创建。但是不能遍历,请交给JToken完成!

  3. JArray:用于操作JSON数组。既可使用parse方法通过现有的字符串解析生成,也可通过new关键字创建。

  4. JProperty:用于操作对象属性,多用于对象遍历:name返回键名,value返回键值;

  5. JValue:用于操作数组原生值,多用于数组遍历;

2案例

前后端分离的新同学,认真吃透这几个属性

Dim str As String = "['abc',123,0.01,null,'2020-04-13 15:30',true,false,[1,2,'cc',false],{'name':'李云龙','age':36}]"
Dim ja As jarray = jarray.parse(str) '将字符串解析为数组对象
Dim sb As new StringBuilder
For Each jt As JToken In ja '对数组遍历时,每个数组元素的基类是JToken
    '根据JToken类型进行判断
    '1如果是对象
    If jt.Type.ToString() = "Object" Then
        sb.AppendLine("Object类型:")
        For Each jp As JProperty In jt
            sb.Append("    " & jp.Name.ToString & ":")
            sb.AppendLine(jp.Value.ToString )
        Next
    '2如果是对象
    Else If jt.Type.ToString() = "Array" Then
        sb.AppendLine("Array类型:")
        For Each jv As JValue In jt
            sb.AppendLine("    " & jv.ToString )
        Next
    Else
        '3如果是原生值
        sb.Append(jt.Type.ToString() & "类型:" )
        sb.AppendLine(jt.ToString())
    End If
Next
Output.Show(sb.ToString)

结果如下

String类型:abc
Integer类型:123
Float类型:0.01
Null类型:
String类型:2020-04-13 15:30
Boolean类型:True
Boolean类型:False
Array类型:
    1
    2
    cc
    False
Object类型:
    name:李云龙
    age:36



随便看看

Copyright © 2016-2022 江门蓬江区华越科技公司 版权所有 | 承接软件定制开发,欢迎联系
粤ICP备17073215号