[
{
"property1": "prop-00000001",
"property2": "property2value1",
"property3": {},
"property4": [
"Prop4-00000001",
"Prop4-00000002"
]
},
{
"property1": "prop-00000002",
"property2": "property2value2",
"property3": {},
"property4": [
"Prop4-00000003",
"Prop4-00000004"
]
}
]
Я собираюсь получить ответ json, как показано выше. Количество элементов может увеличиться, например, на данный момент их 2, оно может увеличиться на go в зависимости от количества записей в базе данных. Другой момент заключается в том, что значения для каждого свойства, показанного выше, всегда будут аналогичны приведенному выше формату.
Моя проблема в том, что когда я использую класс, как показано ниже, для приведения в десериализации ответа json, его не работает:
public class Class1
{
[JsonProperty("Property1")]
public string Property1 { get; set; }
[JsonProperty("Property2")]
public string Property2 { get; set; }
[JsonProperty("Property3")]
public string Property3 { get; set; }
[JsonProperty("Property4")]
public IList<string> Property4 { get; set; }
}
Когда я делаю:
var jsonResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<Class1>(Response.Content);
Исключение:
Сообщение об исключении: после анализа значения неожиданно встретился неожиданный символ: ". Путь 'property3', строка 1, позиция 60.
Это означает, что он не может игнорировать фигурные скобки, которые лежат в качестве значения для property3: т.е. {}.
Stacktrace:
at Newtonsoft.Json.JsonTextReader.ParsePostValue(Boolean ignoreComments)
at Newtonsoft.Json.JsonTextReader.Read()
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value)
Как мне написать правильный C# класс или C# решение?