.net 将JSON更改为JSON数组
在我的VB.net Web Api中,我使用JsonWriter构建Json数组,然后将其作为列表(VerifyReturn)传递给客户端,因为VerifyReturn是类的名称.net 将JSON更改为JSON数组,.net,json,serialization,arrays,.net,Json,Serialization,Arrays,在我的VB.net Web Api中,我使用JsonWriter构建Json数组,然后将其作为列表(VerifyReturn)传递给客户端,因为VerifyReturn是类的名称 Public Class VerifyReturn Public Property Name as String Public Property AnotherName as String End Class 下面是我的VB.net代码: Dim sb As New StringBuild
Public Class VerifyReturn
Public Property Name as String
Public Property AnotherName as String
End Class
下面是我的VB.net代码:
Dim sb As New StringBuilder()
Dim sw As New StringWriter(sb)
jsonWriter.WriteStartObject()
jsonWriter.WritePropertyName("Name")
jsonWriter.WriteValue("Value")
jsonWriter.WritePropertyName("AnotherName")
jsonWriter.WriteValue("AnotherValue")
jsonWriter.WriteEndObject()
Dim ReturnJson = JsonConvert.DeserializeObject(Of List(Of VerifyReturn))(sb.ToString)
我得到这个错误:
无法反序列化当前JSON对象(例如{“名称”:“值”})
输入类型“System.Collections.Generic.List`1[EFramework.VerifyReturn]”
因为该类型需要一个JSON数组(例如[1,2,3])来反序列化
没错
要修复此错误,请将JSON更改为JSON数组(例如。
[1,2,3])或更改反序列化类型,使其成为普通的.NET
类型(例如,不是integer之类的基元类型,也不是集合类型
类似于数组或列表),可以从JSON对象反序列化。
还可以将JsonObjectAttribute添加到类型以强制其
从JSON对象反序列化
我是新手,正在学习JSON
我想将JSON更改为JSON数组
我该怎么做
谢谢。JSON不允许关联数组,因此使用对象 在JSON中,您的示例是
{“Name”:“Value”,“AnotherName”:“AnotherValue”}
假设您想要一个数组,其中每个属性都是如下所示的对象:
[{“Name”:“Value”}、{“AnotherName”、“AnotherValue”}]
您的代码如下所示:
Dim sb作为新的StringBuilder()
Dim sw担任新的StringWriter(sb)
jsonWriter.WriteStartArray()
jsonWriter.WriteStartObject()
jsonWriter.WritePropertyName(“名称”)
jsonWriter.WriteValue(“值”)
jsonWriter.WriteEndObject()
jsonWriter.WriteStartObject()
jsonWriter.WritePropertyName(“其他名称”)
jsonWriter.WriteValue(“另一个值”)
jsonWriter.WriteEndObject()
jsonWriter.WriteEndArray()
Dim ReturnJson=JsonConvert.DeserializeObject(属于不同类的列表))(sb.ToString)
或者,如果需要类的列表,则仅在其周围环绕一个数组:
Dim sb作为新的StringBuilder()
Dim sw担任新的StringWriter(sb)
jsonWriter.WriteStartArray()
jsonWriter.WriteStartObject()
jsonWriter.WritePropertyName(“名称”)
jsonWriter.WriteValue(“值”)
jsonWriter.WritePropertyName(“其他名称”)
jsonWriter.WriteValue(“另一个值”)
jsonWriter.WriteEndObject()
jsonWriter.WriteEndArray()
Dim ReturnJson=JsonConvert.DeserializeObject(属于(VerifyReturn的)列表)(sb.ToString)
这将导致:
[{“Name”:“Value”、“AnotherName”、“AnotherValue”}]