2021年6月

JS美化json数据

项目日志列表中需对报错数据详细信息进行查阅,需对json格式进行美化,如图:

145.png

样式代码:

<style>
    .key{
        color: red;
    }
    .string{
        color: green;
    }
    .layui-layer-content{
        padding: 10px;
    }
</style>

layer弹窗展示数据:

table.on('tool(table-toolbar)', function(obj){
    var data = obj.data;
    var str = prettyFormat(data.data);
    if(obj.event === 'detail'){
        layer.open({
            type: 1,
            title: '数据详情',
            skin: 'layui-layer-rim', //加上边框
            area: ['600px', '500px'], //宽高
            content: str
        });
    }
});

//json格式美化
function prettyFormat(json) {
    try {
        // 设置缩进为2个空格
        //str = JSON.stringify(JSON.parse(str), null, 2);
        str = JSON.stringify(json, null, 2);
        str = str
            .replace(/&/g, '&')
            .replace(/</g, '<')
            .replace(/>/g, '>');
        str = str.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, function (match) {
            var cls = 'number';
            if (/^"/.test(match)) {
                if (/:$/.test(match)) {
                    cls = 'key';
                } else {
                    cls = 'string';
                }
            } else if (/true|false/.test(match)) {
                cls = 'boolean';
            } else if (/null/.test(match)) {
                cls = 'null';
            }
            return '<span class="' + cls + '">' + match + '</span>';
        });
        return "<pre>"+str+"</pre>"
    } catch (e) {
        alert("异常信息:" + e);
    }
}

curl函数post、get数据速度非常慢的处理办法

实际项目中使用curl进行数据请求,访问速度异常的慢,基本上要5s以上的时间,最终通过以下设置得以解决。

//curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); //强制协议为1.0
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Expect:']); //头部要送出'Expect: '
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 ); //强制使用IPV4协议解析域名