Я хотел бы десериализовать json для объекта. Джсон подобен ниже. Но одно значение свойства, может быть, строка или массив, кто-нибудь знает, как с этим справиться?Преобразование свойства Json на основе значения свойства
{
"name": "123", //Name
"properties": [
{
"propertyId": "Subject", // property id
"value": [
{
"entityId": "math", //entity id
"entityTypeId": "MATH" //entity type id
}
]
},
{
"propertyId": "Description",
"value": "Hello World."
}
]
}
Класс, как показано ниже.
//The object
public class Content
{
public Content()
{
//Properties is List.
Properties = new List<Property>();
}
[JsonProperty(PropertyName = "name")]
public string Name { get; set; }
[JsonProperty(PropertyName = "properties")]
public List<Property> Properties { get; set; }
}
public class Property
{
public Property()
{
Value = new List<Value>();
}
[JsonProperty(PropertyName = "propertyId")]
public string PropertyDefId { get; set; }
//Actually this property value can also be string, that's the problem.
[JsonProperty(PropertyName = "value")]
public List<Value> Value { get; set; }
}
//Value object
public class Value
{
//Have to write comments.
[JsonProperty(PropertyName = "entityId")]
public string EntityId { get; set; }
//Have to write comments.
[JsonProperty(PropertyName = "entityTypeId")]
public string EntityTypeId { get; set; }
}
Как просто объявить 'Value' как' object'? – Lloyd
У меня нет времени на проверку прямо сейчас, но, вероятно, вы можете использовать тип: 'JObject' – Uriil
@Lloyd Это работает, но я хотел бы преобразовать его как определенный тип здесь (значение). Таким образом, цель состоит в том, что если значение в Json равно «123», тогда преобразуйте его как строку, если значение представляет собой массив в Json, затем преобразуйте его как тип значения. – Damon