gpt4 book ai didi

javascript - 美化 JavaScript 中的字符串化对象以在静态 html 页面中提供服务

转载 作者:行者123 更新时间:2023-12-03 07:46:56 31 4
gpt4 key购买 nike

我正在尝试使用此代码来美化从另一个服务检索的 JSON 对象,并将其返回到静态页面(必须如此)。

JavaScript 函数可以工作,但我在处理字符串化对象时遇到问题。

它可以很好地编码,例如在 html 的 return 语句之前

json = "{\"a\":\"b\",\"c\":\"d\"}"

并且不使用 stringify,但它不使用 JSON.stringify 和真正的 JSON 对象。

function getStaticResponse(jsonObjectRetrieved){

return '<html>'
+ '<head>'
+ '<title>' + 'title' + '</title>'
+ '<link rel="stylesheet" type="text/css" href="'
+ '/something' + '">'
+ '</head>'

+ '<body>'
+ '<pre class="json-output box bg-color-weight-6 font-calibri">'
+ jsonFormat(JSON.stringify(jsonObjectRetrieved))
+ '</pre>'
+ '</body>'

+ '</html>';
}

function transformJson(k, v) {
if (k === 'href' && typeof v === 'string') {
var label = v.replace(/&/gi, '&amp;');
return '<a href=' + v + '>' + label + '</a>';
}
return v;
}

function jsonFormat(jsonString) {
var jsonObj = JSON.parse(jsonString, transformJson);
return JSON.stringify(jsonObj, undefined, 2)
.replace(/\s"(\w*)":/g, ' "<span class="key">$1</span>":')
.replace(/:\s"(.*)"/g, ': "<span class="string">$1</span>"');
};

非常感谢

最佳答案

尝试删除对 JSON.stringify 的调用在jsonFormat(JSON.stringify(jsonObjectRetrieved))

var json = "{\"a\":\"b\",\"c\":\"d\"}";

function getStaticResponse(title, jsonObjectRetrieved) {

return '<html>'
+ '<head>'
+ '<title>' + title + '</title>'
+ '<link rel="stylesheet" type="text/css" href="'
+ 123 + '">'
+ '</head>'
+ '<body>'
+ '<pre class="json-output box bg-color-weight-6 font-calibri">'
+ jsonFormat(jsonObjectRetrieved)
+ '</pre>'
+ '</body>'
+ '</html>';
}

function transformJson(k, v) {
if (k === 'href' && typeof v === 'string') {
var label = v.replace(/&/gi, '&amp;');
return '<a href=' + v + '>' + label + '</a>';
}
return v;
}

function jsonFormat(jsonString) {
var jsonObj = JSON.parse(jsonString, transformJson);
return JSON.stringify(jsonObj, null, 2)
.replace(/\s"(\w*)":/g, ' "<span class="key">$1</span>":')
.replace(/:\s"(.*)"/g, ': "<span class="string">$1</span>"');
};

document.write(getStaticResponse("abc", json));

关于javascript - 美化 JavaScript 中的字符串化对象以在静态 html 页面中提供服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35167666/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com