#c# #json #json.net
#c# #json #json.net
Вопрос:
У меня есть следующий код на C #, который анализирует массив JSON с помощью JArray.Parse
функции от Newtonsoft. Как только этот JSON будет проанализирован в JArray, мне нужно объединить элементы массива в список, разделенный точкой с запятой, поэтому я использую string.Join
. Этот код работает и создает список, разделенный точкой с запятой, но мне нужно указать конкретные параметры форматирования. Мне нужно форматировать даты определенным образом. Однако я не понимаю, как применить пользовательские настройки форматирования при работе с этим JArray. Есть идеи?
var json = "["2010-03-01T00:00:00 00:00", "2010-01-01T00:00:00 00:00"]";
var array = JArray.Parse(json);
var result2 = string.Join(", ", array);
Console.WriteLine(result2);
И результат этого таков 03/01/2010 00:00:00, 01/01/2010 00:00:00
.
Комментарии:
1. Вы не должны использовать
JArray
для этого. Существует очень мало случаев, когда прямое использование этих типов выгодно. Попробуйтеvar dates = JsonConvert.DeserializeObject<IEnumerable<Date>>(json);
тогдаstring.Join(", ", dates.Select(d => d.ToString("MM/dd/yyyy")));
2. Однако это не всегда будет массив дат. Вот почему я использую
JArray
. Ваш пример все еще применим в некотором смысле?3. Я бы все равно не стал использовать
JArray
для этого. Это действительно зависит от диапазона типов в массиве и от того, является ли он гетерогенным или однородным. Например, это всегда будет массив дат или всегда будет массив чисел?