У меня есть список 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() } } };
"json, как показано ниже:"... но то, что вы указали ниже, - это не JSON, это C#. Похоже, что свойство «Range» в каждом элементе вашего массива City_State (откуда бы он ни исходил) содержит что-то похожее на частичный экранированный бит JSON. Но из-за его неполноты и экранирования вы не сможете легко его разобрать. Вам действительно нужно разъяснить нам, какие данные вы используете и каким вы хотите получить конечный результат. «Не работает» — недостаточно информации, чтобы помочь вам. Пожалуйста, четко и конкретный расскажите о своей проблеме, включая любые сообщения об ошибках и непредвиденные результаты.
Текст в пределах свойства диапазона не является допустимым json. Не хватает фигурных скобок в начале и в конце.
Я хочу преобразовать значения массива City_State в города
Кроме того, ваш заголовок и ваши тексты рассказывают о том, как перейти от классов C# к JSON, но ваши примеры кода показывают больше о том, как перейти от JSON к C#. Поэтому, пожалуйста, будьте более краткими в отношении того, что является вашим конкретным входом (класс с некоторыми заполненными значениями свойств или строкой json) и каким должен быть желаемый результат (класс с заполненными свойствами или строка json)





Если бы у вас были эти классы:
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();
Но если это не соответствует вашим ожиданиям, вы должны быть более конкретными в отношении того, каким должен быть ваш точный ввод и ожидаемый результат.
Я пробовал это .. но значение диапазона в значении списка равно нулю?
Если вы не читали это, пожалуйста, сделайте это. stackoverflow.com/questions/16921652/…