json字段 react_react 解析json

2023-10-31

//Copyright © 2013-2017 David Caldwell //

//Permission to use, copy, modify, and/or distribute this software for any//purpose with or without fee is hereby granted, provided that the above//copyright notice and this permission notice appear in all copies.//

//THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES//WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF//MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY//SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES//WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION//OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN//CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

//Usage//-----//The module exports one entry point, the `renderjson()` function. It takes in//the JSON you want to render as a single argument and returns an HTML//element.//

//Options//-------//renderjson.set_icons("+", "-")//This Allows you to override the disclosure icons.//

//renderjson.set_show_to_level(level)//Pass the number of levels to expand when rendering. The default is 0, which//starts with everything collapsed. As a special case, if level is the string//"all" then it will start with everything expanded.//

//renderjson.set_max_string_length(length)//Strings will be truncated and made expandable if they are longer than//`length`. As a special case, if `length` is the string "none" then//there will be no truncation. The default is "none".//

//renderjson.set_sort_objects(sort_bool)//Sort objects by key (default: false)//

//renderjson.set_replacer(replacer_function)//Equivalent of JSON.stringify() `replacer` argument when it's a function//

//renderjson.set_property_list(property_list)//Equivalent of JSON.stringify() `replacer` argument when it's an array//

//Theming//-------//The HTML output uses a number of classes so that you can theme it the way//you'd like://.disclosure ("⊕", "⊖")//.syntax (",", ":", "{", "}", "[", "]")//.string (includes quotes)//.number//.boolean//.key (object key)//.keyword ("null", "undefined")//.object.syntax ("{", "}")//.array.syntax ("[", "]")

var module, window, define, renderjson=(function() {var themetext = function(/*[class, text]+*/) {var spans =[];while(arguments.length)

spans.push(append(span(Array.prototype.shift.call(arguments)),

text(Array.prototype.shift.call(arguments))));returnspans;

};var append = function(/*el, ...*/) {var el =Array.prototype.shift.call(arguments);for (var a=0; a

append.apply(this, [el].concat(arguments[a]));elseel.appendChild(arguments[a]);returnel;

};var prepend = function(el, child) {

el.insertBefore(child, el.firstChild);returnel;

}var isempty = function(obj, pl) { var keys = pl ||Object.keys(obj);for (var i in keys) if (Object.hasOwnProperty.call(obj, keys[i])) return false;return true; }var text = function(txt) { returndocument.createTextNode(txt) };var div = function() { return document.createElement("div") };var span = function(classname) { var s = document.createElement("span");if (classname) s.className =classname;returns; };var A = function A(txt, classname, callback) { var a = document.createElement("a");if (classname) a.className =classname;

a.appendChild(text(txt));

a.href= '#';

a.οnclick= function(e) { callback(); if (e) e.stopPropagation(); return false; };returna; };function_renderjson(json, indent, dont_indent, show_level, options) {var my_indent = dont_indent ? "": indent;var disclosure = function(open, placeholder, close, type, builder) {varcontent;var empty =span(type);var show = function() { if (!content) append(empty.parentNode,

content=prepend(builder(),

A(options.hide,"disclosure",function() { content.style.display="none";

empty.style.display="inline"; } )));

content.style.display="inline";

empty.style.display="none"; };

append(empty,

A(options.show,"disclosure", show),

themetext(type+ " syntax", open),

A(placeholder,null, show),

themetext(type+ " syntax", close));var el = append(span(), text(my_indent.slice(0,-1)), empty);if (show_level > 0 && type != "string")

show();returnel;

};if (json === null) return themetext(null, my_indent, "keyword", "null");if (json === void 0) return themetext(null, my_indent, "keyword", "undefined");if (typeof(json) == "string" && json.length >options.max_string_length)return disclosure('"', json.substr(0,options.max_string_length)+" ...", '"', "string", function() {return append(span("string"), themetext(null, my_indent, "string", JSON.stringify(json)));

});if (typeof(json) != "object" || [Number, String, Boolean, Date].indexOf(json.constructor) >= 0) //Strings, numbers and bools

return themetext(null, my_indent, typeof(json), JSON.stringify(json));if (json.constructor ==Array) {if (json.length == 0) return themetext(null, my_indent, "array syntax", "[]");return disclosure("[", " ... ", "]", "array", function() {var as = append(span("array"), themetext("array syntax", "[", null, "\n"));for (var i=0; i

append(as,

_renderjson(options.replacer.call(json, i, json[i]), indent+" ", false, show_level-1, options),

i!= json.length-1 ? themetext("syntax", ",") : [],

text("\n"));

append(as, themetext(null, indent, "array syntax", "]"));returnas;

});

}//object

if(isempty(json, options.property_list))return themetext(null, my_indent, "object syntax", "{}");return disclosure("{", "...", "}", "object", function() {var os = append(span("object"), themetext("object syntax", "{", null, "\n"));for (var k in json) var last =k;var keys = options.property_list ||Object.keys(json);if(options.sort_objects)

keys=keys.sort();for (var i inkeys) {var k =keys[i];if (!(k in json)) continue;

append(os, themetext(null, indent+" ", "key", '"'+k+'"', "object syntax", ': '),

_renderjson(options.replacer.call(json, k, json[k]), indent+" ", true, show_level-1, options),

k!= last ? themetext("syntax", ",") : [],

text("\n"));

}

append(os, themetext(null, indent, "object syntax", "}"));returnos;

});

}var renderjson = functionrenderjson(json)

{var options =Object.assign({}, renderjson.options);

options.replacer= typeof(options.replacer) == "function" ? options.replacer : function(k,v) { returnv; };var pre = append(document.createElement("pre"), _renderjson(json, "", false, options.show_to_level, options));

pre.className= "renderjson";returnpre;

}

renderjson.set_icons= function(show, hide) { renderjson.options.show =show;

renderjson.options.hide=hide;returnrenderjson; };

renderjson.set_show_to_level= function(level) { renderjson.options.show_to_level = typeof level == "string" &&level.toLowerCase()=== "all" ?Number.MAX_VALUE

: level;returnrenderjson; };

renderjson.set_max_string_length= function(length) { renderjson.options.max_string_length = typeof length == "string" &&length.toLowerCase()=== "none" ?Number.MAX_VALUE

: length;returnrenderjson; };

renderjson.set_sort_objects= function(sort_bool) { renderjson.options.sort_objects =sort_bool;returnrenderjson; };

renderjson.set_replacer= function(replacer) { renderjson.options.replacer =replacer;returnrenderjson; };

renderjson.set_property_list= function(prop_list) { renderjson.options.property_list =prop_list;returnrenderjson; };//Backwards compatiblity. Use set_show_to_level() for new code.

renderjson.set_show_by_default = function(show) { renderjson.options.show_to_level = show ? Number.MAX_VALUE : 0;returnrenderjson; };

renderjson.options={};

renderjson.set_icons('⊕', '⊖');

renderjson.set_show_by_default(true);

renderjson.set_sort_objects(false);

renderjson.set_max_string_length("none");

renderjson.set_replacer(void 0);

renderjson.set_property_list(void 0);returnrenderjson;

})();//if (define) define({renderjson:renderjson})//else (module||{}).exports = (window||{}).renderjson = renderjson;

export default renderjson;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

json字段 react_react 解析json 的相关文章

  • 操作系统对CPU的虚拟化——进程的抽象、进程相关API以及进程的受限执行

    因为我们计算机的cpu处理器数量是有限的 但是操作系统理论上可以同时并发的运行无数个进程 那么cpu内部是如何实现的呢 操作系统是通过对CPU进行虚拟化来实现的 本篇博客主要讲述操作系统对CPU的虚拟化中的进程相关的知识 包括进程的抽象 进
  • 学生考试信息管理系统c语言程序,学生信息管理系统(c语言)

    include include include include define LEN sizeof STD typedef struct student charxh 12 学号 charxm 12 姓名 floatsxcj 数学成绩 fl
  • 记录下FMDB的简单使用

    软件开发中常用到数据库 而移动开发中sqlite3是最常用的 IOS早就支持了sqlite数据库 由于直接使用sqlite操作数据库不太方便 于是有了很多基于系统sqlite封装的第三方库 FMDB就是其中非常出色的一个 他使用起来灰常简单
  • The MRC database dictionary之IMAG库 (imagery 象性)

    beach 667 jeep 659 telephone 655 sunshine 655 skunk 652 cranberry 649 steak 647 father 646 cigarette 645 banana 644 sunl
  • MySQL innoDB底层基础原理总结

    MySQL innoDB底层基础原理 前言 由于正在准备之后的实习面试 故总结了一部分MYSQL innoDB基础的问题 回答全为自己组织的语言 若有错各位大佬可及时指出 大家共同进步 谢谢 1 innoDB索引实现原理 innoDB存储引
  • 第二十一章、文件服务器之三: FTP 服务器

    FTP File Transfer Protocol 可说是最古老的协议之一了 主要是用来进行档案的传输 尤其是大型档案的传输使用 FTP 更是方便 不过 值得注意的是 使用 FTP 来传输时 其实是具有一定程度的 危险性 因为数据在因特网
  • 你可以简单的设计一下上面的订单管理系统吗

    当然可以 首先 订单管理系统通常包含以下几个主要功能 订单录入 用户可以在系统中输入新的订单信息 包括订单编号 订购商品的种类 数量 单价 总价等信息 订单查询 用户可以根据订单编号 商品名称 日期等信息查询订单 订单修改 用户可以修改已经
  • 编程网站:21 个学习网站推荐给你,大部分编程语言都在这里了

    本文精选了21个有关代码 编程 Java Python SQL Git 和Ruby on Rails学习的网站 这些网站为以下内容的学习提供了免费的优质资源 编程语言 Python和Java等 常用技术 SQL等 操作系统 Linux等 W
  • 编译器中和64位编程有关的预定义宏

    版权声明 本文为博主原创文章 未经博主允许不得转载 本文对分别测试VC MinGW GCC 三种编译器 32位和64位模式 共6种情况下 和64位编程有关的与预定义宏的值 对跨平台编程具有参考意义 Agner Fog 在他的 Calling
  • MyBatis学习(三)-- 实现关联查询

    文章目录 1 实现关联查询 1 1 创建教师表 1 2 创建班级表 1 3 创建学生表 2 创建与数据库表对应的实体类 2 1 创建教师实体类 2 2 创建学生实体类 2 3 创建班级实体类 3 创建班级映射器配置文件 4 修改配置文件 5
  • 【Linux初阶】Linux环境下的 git 使用

    hello 各位读者大大们你们好呀 系列专栏 Linux初阶 本篇内容 详细阐述git是什么 git的发展脉络 还有Linux环境下git工具的具体使用方法 作者简介 计算机海洋的新进船长一枚 请多多指教 目录 一 git是什么 二 git
  • 模块1--BH1750的应用(IIC)

    1 BH1750基本原理讲解 BH1750作为一款数字化的光照传感器 采用的是IIC接口 本篇文章主要是侧重BH1750的应用 关于IIC总线的时序原理 请大家自行学习 数字化的传感器 简单点理解即只要通信接口配置正确 即可读出数据 内部集
  • 微服务架构中不同微服务之间的接口调用

    假定系统管理微服务的实例名称为system 在系统管理中查询码表 api system codeTable queryDataDictionaryByDicCode 在自己的微服务中调用系统管理的查询码表接口写法如下 DataDiction
  • 初识OpenGL (-)VAO&VBO

    如何填充VBO 配置顶点属性指针以及如何把它们都储存到一个VAO里 step1 把颜色数据加进顶点数据中 eg 把颜色数据添加为3个float值至vertices数组 把三角形的三个角分别指定为红色 绿色和蓝色 float vertices
  • 批处理框架

    什么是批处理 在现代企业应用当中 面对复杂的业务以及海量的数据 除了通过庞杂的人机交互界面进行各种处理外 还有一类工作 不需要人工干预 只需要定期读入大批量数据 然后完成相应业务处理并进行归档 这类工作即为 批处理 为什么使用Spring
  • 数据分析和数据挖掘概述

    1 含义 数据挖掘 指从大量的数据中 通过统计学 人工智能 机器学习等方法 挖掘出未知的 且有价值的信息和知识的过程 数据分析 可分为广义的数据分析和狭义的数据分析 广义的数据分析就是包括狭义的数据分析和数据挖掘 而我们常说的数据分析指的是
  • 交叉编译工具的使用说明

    写在前面的话 由于已经学习了JZ2440V3开发板的裸机程序 想检验下学习成果 所以从今天开始把以前学的知识点在tiny4412开发板上面做个检验 裸机部分学习到把uboot移植完成就结束 然后 学习内核的驱动和其他子系统框架 言归正传 现
  • 阿里面试官:接口的幂等性怎么设计?

    一 什么是幂等 看一下维基百科怎么说的 幂等性 多次调用方法或者接口不会改变业务状态 可以保证重复调用的结果和单次调用的结果一致 二 使用幂等的场景 1 前端重复提交 用户注册 用户创建商品等操作 前端都会提交一些数据给后台服务 后台需要根
  • linux shell 正则表达式(BREs,EREs,PREs)差异比较

    http www cnblogs com chengmo archive 2010 10 10 1847287 html 正则表达式 在计算机科学中 是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串 在很多文本编辑器或其他

随机推荐

  • 笛卡尔树建树

    拿个单调队列维护 最后pop出来的就是它的左儿子 现在还在的 它是他的右儿子 int build int S N for int i 1 i lt n i while top T S top val lt T i val T i son 0
  • Markdown中显示矩阵运算过程

    发现这个神奇的用法 以后写博客就可以很好的演示矩阵乘法了 原文知乎 这里再分享一个可以把latex转成图片的在线网站quicklatex markdown 显示矩阵 from IPython display import display L
  • mysql锁总结

    参考文章 MySQL 死锁查询 事务与锁详解2 MySQL死锁系列 常见加锁场景分析 死锁的成因 场景以及死锁的避免 查询锁sql 1 查看当前的事务 SELECT FROM INFORMATION SCHEMA INNODB TRX 2
  • 解决centos下sudo运行tshark,写入文件显示:Permission denied.

    在 w时 需要把文件名写全 相对路径无权限 则需要写成绝对路径 比如 sudo tshark w home xxxx mypcap pcap 下面的不行 sudo tshark w mypcap pcap Permission denied
  • 走线和交互式布线_画PCB时,一些非常好的布线技巧

    画PCB时 一些非常好的布线技巧 布线是PCB设计过程中技巧最细 限定最高的 即使布了十几年布线的工程师也往往觉得自己不会布线 因为看到了形形色色的问题 知道了这根线布了出去就会导致什么恶果 所以 就变的不知道怎么布了 但是高手还是有的 他
  • spring cloud 2021.0.1升级踩坑记录

    一 版本说明 升级前的版本 spring boot 2 2 2 RELEASE spring cloud Hoxton SR1 spring cloud alibaba 2 2 0 RELEASE 升级后版本 spring boot 2 6
  • linux测试代码段运行时间,如何精确测量一段代码的执行时间

    原标题 如何精确测量一段代码的执行时间 本文转载自西邮Linux兴趣小组 最近在工作中遇到了需要精确测量一段C代码执行时间的需求 这里有三种方案供大家选择 1 gettimeofday 2 2 rdtsc rdtscp 3 clock ge
  • 工程师的自我修养:全英文技术学习实践

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 引子 2016年9月 上海GOPS大会现场 Site Reliability Engineering 一书的作者之一 来自Google的Chris Jones在做分享 Ch
  • linux内核添加模块,linux中添加内核模块

    1 内核模块简介 Linux 内核的 整 体结构 非 常 庞 大 其 包 含 的 组 件也 非 常多 如 何使用 需 要 的 组 件 呢 方 法 一 把 所有的 组 件都 编译 进 内核 文 件 即 zImage 或bzImage 但 这样
  • 【MYSQL基础】SQL-DML(数据操作语言)

    文章目录 一 DML 介绍 二 DML 语法 2 1DML 添加 插入数据 2 2DML 修改 更新数据 2 3DML 删除数据 一 DML 介绍 DML Data Manipulation Language 数据操作语言 用来对数据库中表
  • 华夏大盘精选基金经理王亚伟:08年做不好会赔钱

    编者按 华夏基金投资决策委员会主席 华夏大盘精选基金经理王亚伟在华夏基金08年投资策略报告会上对明年资本市场的走势发表了自己的看法 王亚伟 尊敬的各位领导 各位来宾 下午好 刚才两位名嘴很精彩 现在基金行业总体来说是越来越娱乐化了 基金经理
  • 12. XPath解析入门

    目录 前言 模块安装 XPath涉及的基本概念 XPath基本语法 测试完整代码 XPath进阶用法 需求1 让xpath处理这个资源文件 需求2 找到标签位置 如html标签 需求3 找到无序列表 ul 中每一项 li 包裹的文本内容 需
  • 树莓派——配置Linux内核适合树莓派

    文章目录 将linux内核代码和编译工具tools上传到ubuntu 树莓派等芯片带操作系统的启动过程 不带操作系统的 带操作系统的 BootLoader的工作流程 树莓派Linux源码目录树分析 树莓派Linux源码配置 Linux源码特
  • 【数据结构】插入排序 & 希尔排序

    目录 插入排序 希尔排序 插入排序 时间复杂度 O N 2 空间复杂度 O 1 稳定性 稳定 void InsertSort int arr int size for int i 0 i lt size 1 i int end i int
  • easyexcel 第一次导入导出会报错com.alibaba.excel.exception.ExcelAnalysisException,所以自定义excel导入导出表格

    报错原因 由于easyexcel导入导出时如果存在null会报错 跟踪源码com alibaba excel analysis v07 XlsxSaxAnalyser parseXmlSource 查看xmlReader parse 发现这
  • vi 操作

    vi filename c vi 457 filename c 打开文件同时跳至457行 exc 由输入状态退出到控制命令状态 shirt zz 保存并退出 w 保存退出 q 不保存退出 457 跳至457行 set nu 在前面列出行号
  • 大数据教育平台数据仓库系统搭建 附安装包与脚本

    一 数仓项目需求及架构设计 数据仓库是为企业所有级别的决策制定过程 提供所有类型数据支持的战略集合 数据仓库是出于分析报告和决策支持目的而创建的 为需要业务智能的企业 提供指导业务流程改进 监控时间 成本 质量以及控制 1 项目需求分析 数
  • Xilinx软件开发: 用仿真器在XSCT下加载u-boot

    XSCT介绍 XSCT全称叫做Xilinx Software Command Line Tool 顾名思义是Xilinx提供的软件命令行工具 完整的使用说明可以参考ug1208 xsct reference guide 我们平常调试裸机程序
  • Gradle 5.0 更新介绍

    Gradle 5 0正式版出来有几天了 这个工具的发展速度还真是惊人 前些天我看到gradle 5 rc版的时候还在想正式版什么时候出 没想到rc版没过几天正式版就出来了 那么正好 就来介绍一下gradle 5 0正式版加入的一些新功能吧
  • json字段 react_react 解析json

    Copyright 2013 2017 David Caldwell Permission to use copy modify and or distribute this software for any purpose with or