JS格式化数据

JS格式化数据前端经常遇到要处理后台返回的 JSON 数据 并且希望能够按照一定格式进行展示 便于读者查看 此方法便可以进行操作 lettxt sender tuser1 agentid ip sender

前端经常遇到要处理后台返回的JSON数据,并且希望能够按照一定格式进行展示,便于读者查看.此方法便可以进行操作

let txt='[{"sender":"tuser1","agentid":"","ip":"*"}, {"sender":"tuser2","agentid":"","ip":"*"} ]' fomatJson=(txt,false)=>{ 
  //数据json格式化 ------------------txt即为json数据 console.log('数据进入! '); var indentChar = ' '; if(/^\s*$/.test(txt)){ console.log('数据为空,无法格式化! '); this.setState({ errmsg:"数据为空,无法格式化!", goGame:false, }) return; } try{ var data=eval('('+txt+')'); this.setState({ errmsg:"", goGame:true, }) } catch(e){ this.setState({ errmsg:"数据格式错误,请仔细检查!", goGame:false, }) console.log('数据源语法错误,格式化失败! 错误信息: '+e.description,'err'); return; }; var draw=[],last=false,This=this,line=compress?'':'\n',nodeCount=0,maxDepth=0; var notify=function(name,value,isLast,indent/*缩进*/,formObj){ nodeCount++;/*节点计数*/ for (var i=0,tab='';i 
  
    /* 缩进HTML */ tab=compress? 
   '':tab; 
   /*压缩模式忽略缩进*/ maxDepth=++indent; 
   /*缩进递增并记录*/ 
   if(value&&value.constructor==Array){ 
    
   /*处理数组*/ draw.push(tab+(formObj?( 
   '"'+name+ 
   '":'): 
   '')+ 
   '['+line); 
   /*缩进'[' 然后换行*/ 
   for ( 
   var i= 
   0;i 
   
     1,indent, 
    false); draw.push(tab+ 
    ']'+(isLast? 
    line:( 
    ','+line))); 
    /*缩进']'换行,若非尾元素则添加逗号*/ } 
    else 
    if(value&& 
    typeof value== 
    'object'){ 
     
    /*处理对象*/ draw.push(tab+(formObj?( 
    '"'+name+ 
    '":'): 
    '')+ 
    '{'+line); 
    /*缩进'{' 然后换行*/ 
    var len= 
    0,i= 
    0; 
    for( 
    var key 
    in value)len++; 
    for( 
    var key 
    in value)notify(key,value[key],++i==len,indent, 
    true); draw.push(tab+ 
    '}'+(isLast? 
    line:( 
    ','+line))); 
    /*缩进'}'换行,若非尾元素则添加逗号*/ } 
    else{ 
    if( 
    typeof value== 
    'string')value= 
    '"'+value+ 
    '"'; draw.push(tab+(formObj?( 
    '"'+name+ 
    '":'): 
    '')+value+(isLast? 
    '': 
    ',')+line); }; }; 
    var isLast= 
    true,indent= 
    0; notify( 
    '',data,isLast,indent, 
    false); 
    console.log( 
    "显示的文字",draw,draw.join( 
    '')) } 
    
  
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/216968.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午10:38
下一篇 2026年3月18日 上午10:39


相关推荐

  • maven打包时跳过测试「建议收藏」

    maven打包时跳过测试「建议收藏」开发记录有一个maven项目,我clone一下最新的代码。准备打包(mavenpackage),没想到在执行到TEST阶段报错。百思不得其解,决定跳过测试去打包,然后部署。Failedtoexecutegoalorg.apache.maven.plugins:maven-surefire-plugin:2.12.4:test在运行mvninstall或mvnpackag…

    2022年6月9日
    34
  • scrollIntoView 实现「建议收藏」

    scrollIntoView 实现「建议收藏」1.应用场景: 相信大家都曾经遇到过要将屏幕的某一部分滚到到用户视窗里,例如聊天信息的自动滚屏等,这个有不少解决方案: 1.聊天面板的scrolltop=scrollheight2.消息最后加一个element,然后element.scrollIntoView但是如果想要任一容器中间的一个元素,滚到该容器的视窗显示部分…

    2022年6月28日
    32
  • OpenClaw 核心概念详解:Session、Agent、Skill

    OpenClaw 核心概念详解:Session、Agent、Skill

    2026年3月17日
    3
  • svn小乌龟怎么断开链接,怎么查看电脑中的隐藏文件,svn复制包或修改包名应注意什么

    svn小乌龟怎么断开链接,怎么查看电脑中的隐藏文件,svn复制包或修改包名应注意什么svn小乌龟怎么断开链接,怎么查看电脑中的隐藏文件,svn复制包或修改包名应注意什么

    2022年4月24日
    135
  • Echarts中国地图背景颜色渐变

    Echarts中国地图背景颜色渐变摘要 关于 Echarts 地图的问题 在第一篇就说过引入等相关问题 如还有疑惑请先看之前的文章传送门 地图的背景颜色如何实现渐变呢 主要利用的是 Echarts 中的 geo 和 visualMap 结合实现 visualMap nbsp 是视觉映射组件 用于进行 视觉编码 也就是将数据映射到视觉元素 视觉通道 nbsp 与 ECharts2 中 dataRange 的关系 visualMap nbsp 是由 EChar

    2026年3月26日
    2
  • 零基础如何学习PLC

    零基础如何学习PLC很多人在学习PLC之前都做过推销员、维修工、电工或出租车司机。很多新手转PLC的时候肯定会问这个问题:学习PLC的基础是什么?如何学习PLC编程入门?这个社会基础教育问题问的好,说明你对于学生学习这件事我们还是有常识的,基础发展起到一个铺垫、承前启后的作用,把这方面可以搞定了,你会比那些不在乎这些基础而直接进行强攻PLC的人要事半功倍的多。下面就来说说正事学习plc,首先必须有电工基础,了解一些低压电器及其控制技术,这是学习plc必备的基础知识。.原因:面对新机器,首先要了解硬件结

    2022年10月18日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号