Значения регулярных выражений в ответе JSON - PullRequest
1 голос
/ 11 марта 2019

Я хочу пересмотреть значение ответа JSON в AJAX без потери структуры JSON. Вот аякс

$.ajax({
    url: "date.php",
    type: "POST",
    data: formData,
    processData: false,
    contentType: false,
    dataType: "json",
    headers: {
        "X-Requested-With": "XMLHttpRequest",
    },
    success: function(data) {
        var formDatax = new FormData();
        var date = data.results;
        var res = date.map(function(item) {
            return { 
            "images": item.images
            };
        });

        $.ajax({
            url: "json.php",
            type: "POST",
            data: JSON.stringify(res),
            processData: false,
            contentType: false,
            dataType: "json",
            headers: {
                "X-Requested-With": "XMLHttpRequest",
            },
            success: function(data) {

            },
            error: function() {}
        });
    },
    error: function() {}
});

Вот пример ответа JSON

{  
      "part_number_key":"DDASDAS",
      "name":"ASD",
      "description":"asd",
      "price":12,
      "general_stock":12,
      "brand":"ASD",
      "category_id":2776,
      "images":[  
         {  
            "url":"https://asd.com/asd/asd/1241.jpg",
            "display_type":1
         },
         {  
            "url":"https://asd.com/asd/asd/73223.jpg",
            "display_type":0
         },
         {  
            "url":"https://asd.com/asd/asd/214121.jpg",
            "display_type":0
         }
      ],
      "warranty":24
   },

Я хочу получить ссылку на изображение, где display_type имеет значение 1, так что я подумал, что все в порядке, если я переделываю первый URL перед «display_type»: 1, но я не могу, потому что это не строка для регулярного выражения .

/(https?\:\/\/[^\" ][^]).*("display_type":1)/i

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

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Вы можете проанализировать JSON и использовать фильтр и карту, чтобы получить URL изображений

success: function(data) {
   var response = JSON.parse(data)
   var imagesURL = response.images.filter(image => image.display_type).map(image => image.url)
}
0 голосов
/ 11 марта 2019

Тип ответа всегда анализируется JSON. Вы можете просто получить доступ к изображениям, которые имеют display_type: 1 примерно так:

let fileterImages = data.data.images.map((image) => {
  if(image.display_type === 1) return image.url;
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...