Как указать настройки форматирования при работе непосредственно с JArray?

#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 .

https://dotnetfiddle.net/M77aut

Комментарии:

1. Вы не должны использовать JArray для этого. Существует очень мало случаев, когда прямое использование этих типов выгодно. Попробуйте var dates = JsonConvert.DeserializeObject<IEnumerable<Date>>(json); тогда string.Join(", ", dates.Select(d => d.ToString("MM/dd/yyyy")));

2. Однако это не всегда будет массив дат. Вот почему я использую JArray . Ваш пример все еще применим в некотором смысле?

3. Я бы все равно не стал использовать JArray для этого. Это действительно зависит от диапазона типов в массиве и от того, является ли он гетерогенным или однородным. Например, это всегда будет массив дат или всегда будет массив чисел?