1

Есть нижеследущий JSON

{
 "items": [
 {
 "name": "Book",
 "description": "",
 }
 ]
}
class ActionCollection 
{
 [JsonProperty("items")]
 public string Content { get; set; }
}

нужно преобразовать массив в строку при десериализации. Сейчас падает с ошибкой Unexpected character encountered while parsing value: [. Path 'items''

задан 11 мая 2018 в 18:17
2
  • А зачем вам такое издевательство? Почему не создать полноценную структуру для работы с этим json? Commented 11 мая 2018 в 18:21
  • Все остальное нужно отобразитькак есть Commented 11 мая 2018 в 18:26

1 ответ 1

0

Кастомный конвертер создайте:

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
2
  • Т.е. в любом случае проще десериализовать, а потом уже привести к строке? Т.е. нет такого понятия десириализовать только первый уровень? Commented 11 мая 2018 в 19:56
  • @Oleg из коробки такого нету, самому только писать. Commented 11 мая 2018 в 19:57

Ваш ответ

Черновик сохранён
Черновик удалён

Зарегистрируйтесь или войдите

Регистрация через Google
Регистрация через почту

Отправить без регистрации

Необходима, но никому не показывается

Отправить без регистрации

Необходима, но никому не показывается

Нажимая «Отправить ответ», вы соглашаетесь с условиями пользования и подтверждаете, что прочитали политику конфиденциальности.

Начните задавать вопросы и получать на них ответы

Найдите ответ на свой вопрос, задав его.

Задать вопрос

Изучите связанные вопросы

Посмотрите похожие вопросы с этими метками.