在 VB.Net WebMethod 中反序列化 JSON 不工作
Deserialize JSON in VB.Net WebMethod isn't working
我在调用 WebMethod 时试图反序列化一个 JSON 对象。反序列化成功创建对象数组,但值为"Nothing"。我做错了什么?
我的对象class:
public class Data
{
public Attribute[] Attributes{ get; set; }
}
public class Attribute
{
public string Category { get; set; }
public string Value { get; set; }
}
这是我的网络方法:
<System.Web.Services.WebMethod()>
Public Shared Function A_Method(ByVal Attributes As Data)
'do things
End Function
这里是我的 JSON 对象,它被传递给 WebMethod:
{"Attributes":[
{
"Attribute":{
"Category":"Category1",
"Value":"Value1"
}
},
{
"Attribute":{
"Category":"Category2",
"Value":"Value2"
}
},
{
"Attribute":{
"Category":"Category3",
"Value":"Value3"
}
},
{
"Attribute":{
"Category":"Category4",
"Value":"Value4"
}
},
{
"Attribute":{
"Category":"Category5",
"Value":"Value5"
}
},
{
"Attribute":{
"Category":"Category6",
"Value":"Value6"
}
},
{
"Attribute":{
"Category":"Category7",
"Value":"Value7"
}
}
]
}
我的问题是我得到了包含类别和值标签的 7 个属性的数组,但值为 "Nothing"。我做错了什么?
您的对象模型与显示的 JSON 不匹配,后者实际上映射到以下
public class Data {
public AttributeElement[] Attributes { get; set; }
}
public class AttributeElement {
public Attribute Attribute { get; set; }
}
public class Attribute {
public string Category { get; set; }
public string Value { get; set; }
}
请注意数组中的元素如何具有 Attribute
属性。
<System.Web.Services.WebMethod()>
Public Shared Function A_Method(ByVal data As Data)
'do things
Dim someAttribute = data.Attributes(0).Attribute
Dim category = someAttribute.Category
Dim value = someAttribute.Value
'...
End Function
我在调用 WebMethod 时试图反序列化一个 JSON 对象。反序列化成功创建对象数组,但值为"Nothing"。我做错了什么?
我的对象class:
public class Data
{
public Attribute[] Attributes{ get; set; }
}
public class Attribute
{
public string Category { get; set; }
public string Value { get; set; }
}
这是我的网络方法:
<System.Web.Services.WebMethod()>
Public Shared Function A_Method(ByVal Attributes As Data)
'do things
End Function
这里是我的 JSON 对象,它被传递给 WebMethod:
{"Attributes":[
{
"Attribute":{
"Category":"Category1",
"Value":"Value1"
}
},
{
"Attribute":{
"Category":"Category2",
"Value":"Value2"
}
},
{
"Attribute":{
"Category":"Category3",
"Value":"Value3"
}
},
{
"Attribute":{
"Category":"Category4",
"Value":"Value4"
}
},
{
"Attribute":{
"Category":"Category5",
"Value":"Value5"
}
},
{
"Attribute":{
"Category":"Category6",
"Value":"Value6"
}
},
{
"Attribute":{
"Category":"Category7",
"Value":"Value7"
}
}
]
}
我的问题是我得到了包含类别和值标签的 7 个属性的数组,但值为 "Nothing"。我做错了什么?
您的对象模型与显示的 JSON 不匹配,后者实际上映射到以下
public class Data {
public AttributeElement[] Attributes { get; set; }
}
public class AttributeElement {
public Attribute Attribute { get; set; }
}
public class Attribute {
public string Category { get; set; }
public string Value { get; set; }
}
请注意数组中的元素如何具有 Attribute
属性。
<System.Web.Services.WebMethod()>
Public Shared Function A_Method(ByVal data As Data)
'do things
Dim someAttribute = data.Attributes(0).Attribute
Dim category = someAttribute.Category
Dim value = someAttribute.Value
'...
End Function