Нужна помощь в переводе значения get в файле JSON

#javascript #json #if-statement

#javascript #json #if-оператор

Вопрос:

Наша школа получает данные из источника во время синхронизации.

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

Вот сценарий: источник, отправляющий нам информацию, имеет значение по умолчанию как «tobedeleted». Нам нужно, чтобы это было переведено в «деактивировать». а затем поместить в нашу базу данных.

Я думаю, то, что отправляется, просто игнорируется, потому что оно не соответствует ни одному из наших значений enum.

Моя идея состоит в том, чтобы получить справку о написании: если значение get = «tobedeleted», затем переведите его в «деактивировать», а затем обновите нашу базу данных.

     {
      "path": "/v1/courses/{course_id}/enrollments/{id}",
      "description": "Conclude, deactivate, or delete an enrollment. If the  task  argument isn't given, the enrollmentnwill be concluded.",
      "operations": [
        {
          "method": "DELETE",
          "summary": "Conclude, deactivate, or delete an enrollment",
          "notes": "Conclude, deactivate, or delete an enrollment. If the  task  argument isn't given, the enrollmentnwill be concluded.",
          "nickname": "conclude_deactivate_or_delete_enrollment",
          "parameters": [
            {
              "paramType": "path",
              "name": "course_id",
              "description": "ID",
              "type": "string",
              "format": null,
              "required": true,
              "deprecated": false
            },
            {
              "paramType": "path",
              "name": "id",
              "description": "ID",
              "type": "string",
              "format": null,
              "required": true,
              "deprecated": false
            },
            {
              "paramType": "query",
              "name": "task",
              "description": "The action to take on the enrollment.nWhen inactive, a user will still appear in the course roster to admins, but be unable to participate.n("inactivate" and "deactivate" are equivalent tasks)",
              "type": "string",
              "format": null,
              "required": false,
              "deprecated": false,
              "enum": [
                "conclude",
                "delete",
                "inactivate",
                "deactivate"
              ]
            }
          ],
          "response_fields": [

          ],
          "deprecated": false,
          "deprecation_description": "",
          "type": "Enrollment"
        }
      ]
    },
  

Заранее благодарю!

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

1. вы получаете данные из x, а затем вам нужно взять эти данные (возможно, изменить их) и отправить их в другую базу данных?

2. ДА. Я считаю, что именно так это работает. Мы получаем значение от X и должны обновить Y (с другим значением, чем отправленное X)

Ответ №1:

Давайте присвоим JSON переменной с именем data . Затем вы можете сделать

    data.operations.map((operation) => {
    if (operation.method === 'DELETE') {
        operation.parameters.map((param, queryIndex) => {
            if (param.paramType === 'query') {
                param.enum.map((item, enumIndex) => {
                    if (item === 'tobedeleted') {
                        operation.parameters[queryIndex].enum[enumIndex] = 'inactivate';
                        //item = 'inactivate';
                    }
                });
            }
        });
    }
    return operation;
});
  

Примечание: Это может быть не оптимизированный код, но он выполняет свою работу.

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

1. Этот скрипт выглядит идеально. Простите мое невежество. Там, где вы написали «item», это именно то, что вы предлагаете («item»), или мне следует искать другой термин / переменную? Этот файл имеет размер 1400 строк плюс.

2. Извините, Энтони, я не понял вашего вопроса

3. Вам нужно упростить данные. Вам нужно выяснить, в каком случае вы получаете это конкретное значение, которое вы ищете. Как я вижу из json, когда ParamType является запросом, выберите этот конкретный блок и измените.

4. Нет, вы не можете добавить ничего подобного в JSON. Я попытаюсь отредактировать свой фрагмент кода

5. Я разместил ссылку на файл. Я просто не знаю, где в файле (номер строки) разместить скрипт. Я боюсь испортить остальную часть кода на основе размещения. freedomcheck.com/enrollments.json