javascript - 如何将图像 URL 替换为 JSON 对象中的图像标记?
问题描述
这是我从服务器得到的 JSON 响应:
const response = {
status: "OK",
data: {
qr_code_string: "/ AFFFFABRRRQAUUUUAFFFFAB",
image_url: "http://s3.amazonaws.com/rapgenius/filepicker%2FvCleswcKTpuRXKptjOPo_kitten.jpg",
qr_code: "serse",
expiry_time: "05-16-2019 10:05:34"
}
};
我需要以我这样实现的格式化方式显示此 JSON 响应:
JSON.stringify(response, null, 4)
现在的要求是image_url
在图像标签中呈现并在 JSON 中显示其余部分。
我想知道是否可以使用正则表达式来实现这一点。
编辑:我还想提一下,无论响应结构如何,它都可以是对象数组或嵌套对象。通过正则表达式识别图像 url 或通过识别 key 的值image_url
,我想实现这一点。
解决方案
将 分配image_url
给<img />
/new Image()
元素。
从对象中删除属性。
“打印”对象JSON.stringify()
将逻辑包装在一个函数中。当响应是对象数组时更易于使用
const response = {
status: "OK",
data: {
qr_code_string: "/ AFFFFABRRRQAUUUUAFFFFAB",
image_url: "http://s3.amazonaws.com/rapgenius/filepicker%2FvCleswcKTpuRXKptjOPo_kitten.jpg",
qr_code: "serse",
expiry_time: "05-16-2019 10:05:34"
}
};
showResponseObject(response);
// or in case of an array of objects
// response.forEach(showResponseObject);
function showResponseObject(res) {
// the <ul> is just an example
const list = document.querySelector("ul"),
li = document.createElement("li"),
pre = document.createElement("pre"),
img = new Image();
img.src = res.data.image_url;
delete res.data.image_url;
pre.textContent = JSON.stringify(res, null, 4);
li.appendChild(pre);
li.appendChild(img);
list.appendChild(li);
}
<ul></ul>
推荐阅读
- python - 如何将带有小时整数的列转换为 datetime pandas 索引?
- jquery - 在 JQuery 对话框文本框中输入单击不会触发 __doPostBack
- sql - 替换重复出现的单词及其前面的字符
- javascript - 如何在javascript中检测2个重叠的div并切换类
- java - 翻译自定义通知字符串
- c# - 在提升权限软件的对话框中显示共享文件夹
- javascript - 带有图像的画布 drawImage() 不绘制任何内容
- solidity - 使用 web3 获取空结果表单智能合约
- javascript - 如何使用 jQuery 以编程方式单击复选框?
- c++ - 在 Visual Studio 代码中访问被拒绝