Есть нижеследущий JSON
{
"items": [
{
"name": "Book",
"description": "",
}
]
}
class ActionCollection
{
[JsonProperty("items")]
public string Content { get; set; }
}
нужно преобразовать массив в строку при десериализации. Сейчас падает с ошибкой Unexpected character encountered while parsing value: [. Path 'items''
-
А зачем вам такое издевательство? Почему не создать полноценную структуру для работы с этим json?EvgeniyZ– EvgeniyZ2018年05月11日 18:21:26 +00:00Commented 11 мая 2018 в 18:21
-
Все остальное нужно отобразитькак естьOleg– Oleg2018年05月11日 18:26:20 +00:00Commented 11 мая 2018 в 18:26
1 ответ 1
Кастомный конвертер создайте:
public class ListToStringConverter : JsonConverter {
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) {
throw new NotImplementedException();
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) {
JArray data = serializer.Deserialize<JArray>(reader);
// тут что-то делаем, преобразуем в строку, например
return data.ToString();
}
public override bool CanConvert(Type objectType) {
throw new NotImplementedException();
}
}
И в классе его назначьте:
internal class ActionCollection {
[JsonProperty("items")]
[JsonConverter(typeof (ListToStringConverter))]
public string Content { get; set; }
}
ответ дан 11 мая 2018 в 18:33
Suvitruf - Andrei Apanasik
32.4k15 золотых знаков63 серебряных знака96 бронзовых знаков
-
Т.е. в любом случае проще десериализовать, а потом уже привести к строке? Т.е. нет такого понятия десириализовать только первый уровень?Oleg– Oleg2018年05月11日 19:56:00 +00:00Commented 11 мая 2018 в 19:56
-
@Oleg из коробки такого нету, самому только писать.Suvitruf - Andrei Apanasik– Suvitruf - Andrei Apanasik2018年05月11日 19:57:53 +00:00Commented 11 мая 2018 в 19:57
Начните задавать вопросы и получать на них ответы
Найдите ответ на свой вопрос, задав его.
Задать вопросlang-cs