С# Удалить квадратные скобки из массива

Я создаю веб-API и работаю с учетной записью в соответствии с точными требованиями, установленными внешней компанией, которая будет извлекать данные из API через запрос GET. Одним из требований является наличие квадратных скобок, заключающих массивы в возвращаемом значении, которое необходимо удалить. Ниже приведен пример того, что у меня есть на данный момент — факультеты религий, языков и истории заключены в квадратные скобки;

{
    "roles": [
        [
            "STUDENT",
            "Undergraduate",
            3,
            [
                "History",
                "Languages",
                "Religions"
            ],
            "GIBSON, David Test",
            666778
        ]
    ]
}

Они требуют, чтобы возврат выглядел так;

{
  "roles": [
    [
      "STUDENT",
      "Undergraduate",
      3,
      "History",
      "Languages",
      "Religions",
      "GIBSON, David Test",
      666778
    ]
  ]
}

Не уверен, что это поможет, но три вышеупомянутых факультета представляют собой массив с именем deptarray, т. е. если студент принадлежит более чем к одному факультету, перечислите эти факультеты в возврате в виде массива;

var deptarray = jArr.Distinct();

if (deptarray.Count() > 1) studentList[0][i] = new JArray(deptarray);

Я был бы признателен за любую помощь в удалении квадратных скобок и просто за то, что отделы заключены в двойные кавычки.

Я предполагаю из JArray, что вы используете Json.NET?

stuartd 20.02.2023 23:45

Вам не нужно убирать скобки, вам просто нужно создать массив, содержащий "Student","Undergrad", etc. по-другому. Вы уверены, что у вас это правильно? Если вы делаете то, что предлагаете, и предполагаете, что количество отделов является переменным, как можно будет определить разницу между отделом и названием, которое следует за списком отделов?

Tangentially Perpendicular 20.02.2023 23:46

@stuartd спасибо за ответ - да, верно, я использую Json.NET.

GBM 20.02.2023 23:53

@TangentiallyPerpendicular спасибо, что нашли время, чтобы проверить вопрос. Внешней компании не нужно будет указывать разницу между списком факультетов и данными других студентов. Каждый бит студенческих данных, которые они будут читать, называется «роль», поэтому, когда они отправляют запрос GET для любого конкретного учащегося, они хотят, чтобы их данные были перечислены в указанном выше формате и в каждой строке (например, отдел, год, номер студента и т. д.) называется «роль». Таким образом, для приведенного выше примера студента у них будет 8 ролей, т. е. роль, созданная для каждой строки в отчете.

GBM 20.02.2023 23:57
Руководство для начинающих по веб-разработке на React.js
Руководство для начинающих по веб-разработке на React.js
Веб-разработка - это захватывающая и постоянно меняющаяся область, которая постоянно развивается благодаря новым технологиям и тенденциям. Одним из...
Разница между Angular и React
Разница между Angular и React
React и AngularJS - это два самых популярных фреймворка для веб-разработки. Оба фреймворка имеют свои уникальные особенности и преимущества, которые...
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Веб-скрейпинг, как мы все знаем, это дисциплина, которая развивается с течением времени. Появляются все более сложные средства борьбы с ботами, а...
Калькулятор CGPA 12 для семестра
Калькулятор CGPA 12 для семестра
Чтобы запустить этот код и рассчитать CGPA, необходимо сохранить код как HTML-файл, а затем открыть его в веб-браузере. Для этого выполните следующие...
ONLBest Online HTML CSS JAVASCRIPT Training In INDIA 2023
ONLBest Online HTML CSS JAVASCRIPT Training In INDIA 2023
О тренинге HTML JavaScript :HTML (язык гипертекстовой разметки) и CSS (каскадные таблицы стилей) - две основные технологии для создания веб-страниц....
Как собрать/развернуть часть вашего приложения Angular
Как собрать/развернуть часть вашего приложения Angular
Вам когда-нибудь требовалось собрать/развернуть только часть вашего приложения Angular или, возможно, скрыть некоторые маршруты в определенных средах?
0
4
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я вижу, ты никогда не останавливаешься. Это ваш код, который вы должны добавить в свой ADO.net.

   var roles = JArray.From(studentRoles);

    if (roles.Count() > 1)
    {   
         var newArr = new JArray();
        for (int j = 0; j < roles[0].Count(); j++)
        {
            var jArr = new JArray();
            for (var i = 1; i < roles.Count(); i++)
            {
                if (i == 1) jArr = new JArray { roles[0][j] };
                jArr.Add(roles[i][j]);
            }
 
            var arr = jArr.Distinct();

            if (arr.Count() > 1)
                foreach (var item in arr)
                {
                    newArr.Add(item);
                }
            else newArr.Add(arr.First());
                
            }
       }
         roles=newArr;
     }

var response = Request.CreateResponse(HttpStatusCode.OK, new { roles = roles 
});

Ха! Рад снова видеть тебя, мой друг :). Я обещаю, что скоро остановлюсь, ха-ха. Еще раз спасибо за вашу помощь. Позвольте мне взглянуть на это и вернуться к вам.

GBM 21.02.2023 01:18

Я должен тебе выпить или четыре? Сделано ТОЧНО то, что мне было нужно. Спасибо большое Серж! Ты был моим героем на этой неделе, ха-ха! :)

GBM 21.02.2023 12:08

@GBM Добро пожаловать!. Пожалуйста, будьте честны сейчас и скажите, есть ли что-то, что вам еще нужно изменить.

Serge 21.02.2023 12:58

РЖУ НЕ МОГУ! Я обещаю, что больше ничего нет :) ну, по крайней мере, не касающегося формата данных, ха! Ты был джентльменом, и я ценю тебя! Еще раз спасибо за вашу помощь!

GBM 21.02.2023 13:15

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