Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 将JSON更改为JSON数组_.net_Json_Serialization_Arrays - Fatal编程技术网

.net 将JSON更改为JSON数组

.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

在我的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 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”}]