JSON 学习

.net JSON解析

一、加载Newtonsoft.Json.dll

二、要加命名空间 Imports Newtonsoft.Json

三、序列化

(用Newtonsoft.Json.dll 中的JsonConvert.SerializeObject(ClsStudent)方法把ClsStudent类序列化成JSON格式的字符串方便通讯)

1、新建用于序列化的类(常

Public Class ClsStudent
    Public Sub New(ByVal ID As Integer, ByVal Name As String, ByVal Age As Int16, ByVal Teacher As String)
        _ID = ID
        _Name = Name
        _Age = Age
        _Teacher = Teacher
    End Sub
    Public _ID As Integer
    Public _Name As String
    Public _Age As Int16
    Public _Teacher As String
End Class

Public Class ClsSchool
  Public 学院_ID As Integer
  Public 学院_Name As String
  public student As ClsStudent
 End Class

2、序列化

Dim Data = JsonConvert.SerializeObject(ClsStudent) '序列化为JSON格式的字符串
Console.Write(Data)

'{"_ID":123,"_Name":"小明","_Age":16,"_Teacher":"张老师"}
'{"学院_ID":123,"学院_Name":"电气工程","student":{"_ID":123,"_Name":"小明","_Age":16,"_Teacher":"张老师"}}

四、反序列化

方法1、(将接收到的JSON还原到预定义的类然后读取属性字段)

 Dim XiaoMing As String  = "{"_ID":123,"_Name":"小明","_Age":16,"_Teacher":"张老师"}"
'反序列化为预定义实体类
 Dim Student As ClsStudent = JsonConvert.DeserializeObject(Of ClsStudent)(XiaoMing) 
 Console.Write(Student.Name)

' "小明"

方法2、(类似反序列化成键值对,然后找到对应的键就可以知道值,也可以更改对应键的值)

 
Dim Student = JsonConvert.DeserializeObject(XiaoMing) '反序列不用预定义类
 Console.Write(Student("Name"))
' "小明"
Student("Name") = “小红”

Console.Write(Student("Name"))
' "小红"

 

 

 

 

posted @ 2022-03-31 10:43  浅物  阅读(35)  评论(0)    收藏  举报