eConti - программирование в вопросах и ответах

Как создать пользовательский объект из сериализованной формы?

Мне нужно передать несколько сериализованных элементов формы в функцию, чтобы вернуть их как объект JSON. Я написал функцию, но fieldName оказывается в объекте json как "fieldName" вместо фактического имени поля, т.е. "PositionId" или "Серия". Однако значения правильные. JS не позволит мне использовать field.name, но позволяет field.value, поэтому мне пришлось создать var fieldName. Вот функция:

function SerializedFormToJSON(serializedForm){
   var myJSONObject = {};
   var fieldName = "";
   $.each(serializedForm, function(i, field) {
      fieldName = field.name;
      if (field.value != "" && field.value != "ALL") {
        myJSONObject = { fieldName: field.value };
      }
   });
return myJSONObject;
}
05.06.2009

Ответы:


1

Помимо проблемы, с которой вы столкнулись, вы воссоздаете объект на каждой итерации цикла. Строка, в которой вы устанавливаете свойство, должна выглядеть так:

myJSONObject[fieldName] = field.Value;

Полная функция:

function SerializedFormToJSON(serializedForm){
   var myJSONObject = {};
   var fieldName = "";
   $.each(serializedForm, function(i, field) {
      fieldName = field.name;
      if (field.value != "" && field.value != "ALL") {
        myJSONObject[fieldName] =  field.value;
      }
   });
return myJSONObject;
05.06.2009
  • Блин, ты опередил меня секунд на 10. 05.06.2009
  • Нет, вы бы хотели, чтобы это был объект, а не массив. 05.06.2009

  • 2

    Попробуйте использовать обозначение индекса массива:

    myJSONObject[fieldName] = field.value;
    
    05.06.2009
    Новые материалы

    ИИ для общего блага, часть вторая
    В нашем последнем блоге мы исследовали возможности ИИ для общего блага, указав на несколько инициатив по поиску действенных решений для продвижения справедливых и беспристрастных систем ИИ. По..

    Время расцвета закончилось
    Большую часть своей карьеры в индустрии программного обеспечения программисты работали с головой в песок. Успех в отрасли требует навыков презентации и обучения других. Ценность улучшенных..

    Будущее сельского хозяйства: новый уровень производительности с современными технологиями
    По мере роста населения мира растет и спрос на продукты питания. Фермеры сталкиваются с растущим давлением необходимости повышать урожайность и максимизировать производительность, манипулируя..

    Состояние совместной фильтрации в 2022 году, часть 1
    ResBeMF: Улучшение прогнозируемого охвата совместной фильтрации на основе классификации (arXiv) Автор: Анхель Гонсалес-Прието , Авраам Гутьеррес , Фернандо Ортега , Рауль Лара-Кабрера..

    Зачем изучать PYTHON в 2022 году !
    Python — востребованный, доступный язык программирования с активным, постоянно растущим сообществом пользователей. Для тех, кто хочет сменить профессию в мире технологий с помощью..

    Решение капч с помощью Puppeteer
    Это руководство предназначено для текстовых кодов, а не для reCAPTCHA Google (см. конец этого сообщения). Требования: Антикапча или любой другой сервис по разгадыванию капчи. Модуль..

    7 встроенных библиотек Python, которые необходимо знать
    7 встроенных библиотек Python, которые необходимо знать Стандартная библиотека Python значительно упрощает жизнь программистов, предоставляя широкий набор функций. Мы выбираем несколько..