Как преобразовать список в JSON на С#?

У меня есть список City_State:

City_State[0].Range = "\"city\":\"REDMOND\",\"state\":\"AK\"";
City_State[1].Range = "\"city\":\"Alex City\",\"state\":\"

Как преобразовать его в json, как показано ниже:

var _pairs = new
{
    criteria = new { cities = new[] { new { city = "REDMOND", state = "WA" }, 
     new { city = "Alex City", state = "AL" } } 
} ;

Я попробовал код ниже, но он не работает:

var _pairs = new { criteria = new { cities = new[] { _paged_City_State.ToArray() } }  };

Если вы не читали это, пожалуйста, сделайте это. stackoverflow.com/questions/16921652/…

O. Jones 06.02.2019 13:24

"json, как показано ниже:"... но то, что вы указали ниже, - это не JSON, это C#. Похоже, что свойство «Range» в каждом элементе вашего массива City_State (откуда бы он ни исходил) содержит что-то похожее на частичный экранированный бит JSON. Но из-за его неполноты и экранирования вы не сможете легко его разобрать. Вам действительно нужно разъяснить нам, какие данные вы используете и каким вы хотите получить конечный результат. «Не работает» — недостаточно информации, чтобы помочь вам. Пожалуйста, четко и конкретный расскажите о своей проблеме, включая любые сообщения об ошибках и непредвиденные результаты.

ADyson 06.02.2019 13:24

Текст в пределах свойства диапазона не является допустимым json. Не хватает фигурных скобок в начале и в конце.

Oliver 06.02.2019 13:25

Я хочу преобразовать значения массива City_State в города

Donald 06.02.2019 13:34

Кроме того, ваш заголовок и ваши тексты рассказывают о том, как перейти от классов C# к JSON, но ваши примеры кода показывают больше о том, как перейти от JSON к C#. Поэтому, пожалуйста, будьте более краткими в отношении того, что является вашим конкретным входом (класс с некоторыми заполненными значениями свойств или строкой json) и каким должен быть желаемый результат (класс с заполненными свойствами или строка json)

Oliver 06.02.2019 13:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
5
76
1

Ответы 1

Если бы у вас были эти классы:

public class CityStateRaw
{
    public string Range { get; set; }
}

public class CityState
{
    public string City { get; set; }
    public string State { get; set; }
}

Следующий код будет работать:

var ranges = new[]
{
    new CityStateRaw { Range = "{\"city\":\"REDMOND\",\"state\":\"AK\"}" },
    new CityStateRaw { Range = "{\"city\":\"Alex City\",\"state\":\"foo\"}" },
};

var list = ranges
    .Select(raw => JsonConvert.DeserializeObject<CityState>(raw.Range))
    .ToList();

Но если это не соответствует вашим ожиданиям, вы должны быть более конкретными в отношении того, каким должен быть ваш точный ввод и ожидаемый результат.

Я пробовал это .. но значение диапазона в значении списка равно нулю?

Donald 06.02.2019 14:08

Другие вопросы по теме