【发布时间】:2019-08-01 21:34:17
【问题描述】:
我想在 AJAX 中正则表达式 JSON 响应值,而不会丢失 JSON 的结构。 这是ajax
$.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 的图像的链接,所以我认为如果我正则表达式 "display_type":1 之前的第一个 url 就可以了,但我不能,因为这不是正则表达式的字符串.
/(https?\:\/\/[^\" ][^]).*("display_type":1)/i
正则表达式,它不完整,因为我看到了关于我没有尝试完成正则表达式的字符串的问题...
【问题讨论】:
-
你必须解析 json
-
使用
JSON.parse(responseString)然后在你的json中查找图片<jsonObject>.images.forEach(item => {if item["display_type"] == 1 ....}) -
JSON 和正则表达式不是好朋友。使用解析器,它更简单、更快且更易于维护。
标签: javascript arrays json regex response