Передача большого объекта Javascript, который содержит кавычки, URL-адреса и т. Д. Внутри JSON для вызова POST - PullRequest
0 голосов
/ 21 февраля 2019

Я понимаю, что была рассмотрена тема преобразования Javascript в JSON и правильного экранирования (например, здесь Преобразование объекта JS в строку JSON , а здесь Как мне разместить строку скак одинарные, так и двойные кавычки внутри него в Javascript ).У меня совсем нет особого успеха, хотя -

Я пытаюсь передать большой объект Javascript в вызов POST (используя Postman), который просит меня передать его следующим образом:

{ "key":"/url/url/es", "value":"{myData}" }

Где мой объект должен заполнить часть {myData}.Моя структура данных слишком велика, чтобы передать ее целиком, но она содержит такие части, как эта

 name: 'Something',
      reactComponentName: 'EntradaTwoPack',
      numberOfCards: 2,
      variant: '0',
      mainTitle: 'Something',
      cards: [
        {
          name: 'card1',
          elements: {
            showImage1: false,
            _comment: 'These fields are required, the component can expect them to know what to paint',
          },
          values: {
            cardTitle: '1 DÍA 1 PARQUE',
            cardLinkText: 'Condiciones',
            cardLinkURL: '/condiciones',
            images: ['https://s3-eu-west-1.amazonaws.com/anImage.png'],
            section0Title: 'Adulto',
            section0SubTitle: '11 - 59 años',
            section1Title: 'Júnior / Sénior',
            section1SubTitle: '4 - 10 años/+60 años',
        },
      ]

То есть она содержит одинарные кавычки, URL-адреса, объекты внутри массивов, объекты в объектах и ​​т. Д. Я пробовалэкранирование одинарных кавычек и прямой косой черты в URL, удаление разрывов строк и т. д., но, похоже, ничего не работает.(Я получаю вывод, похожий на этот:

mainTitle: \'TOP HOTELES\', mainDescription: \'Lorem ipsum dolor sit amet, consectetur adipiscing elit. \', mainLinkURL: \'http:\/\/www.startpage.com\', showBreadCrumb: false, cards: [ { name: \'card1\',

Я вставил его в консоль Chrome, а затем JSON.stringify(), но это тоже не сработало. Я такжевзял вывод из Chrome и избежал его, как указано выше, но не игра в кости. Возможно, я что-то упустил концептуально - любые советы приветствуются!

Ответы [ 3 ]

0 голосов
/ 21 февраля 2019

Попробуйте это - https://jsitor.com/4turZdkIJ, Я только что написал для вас небольшую строковую утилиту

Замените ваш объект JSON в объекте myJSON и запустите фрагмент.Он выведет то, что вам нужно в терминале.

Хитрость в том, что, поскольку вам нужно передать строковую версию вашего объекта в поле значения, вы должны использовать JSON.stringify(myJSON) метод JavaScript.Но так как вы напрямую используете Postman, вам, возможно, придется использовать какой-то инструмент для его преобразования.Приведенная выше ссылка поможет вам сделать это.

0 голосов
/ 21 февраля 2019

В конце концов, просто используя JSON.stringify() в Chrome, я смог заставить его работать.Я понятия не имею, в чем проблема в другой раз, когда я попробовал это - я был остороженСпасибо всем, кто уделил мне свое время!

0 голосов
/ 21 февраля 2019

Значение должно быть строкой?

Поскольку вы можете просто передать имеющийся у вас объект дыры в качестве объекта и использовать свой Content-Type в качестве application / json

{
  "key":"/url/url/es", "value":YOU_OBJECT
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...