JSON AST 生成MD
使用 JsonLite 获取 JSON AST
class Program
{
static void Main(string[] args)
{ string fileName = $"{AppDomain.CurrentDomain.BaseDirectory}\\json.txt"; //SyntaxTree using (var stream = File.OpenRead(fileName))
{ JsonObject temp = Json.CreateAst(stream) as JsonObject; string md = Process(temp);
} Console.WriteLine("Hello World!");
} static string Process(JsonObject jsonObject)
{
StringBuilder builder = new StringBuilder();
builder.AppendLine("#### 返回参数");
builder.AppendLine("| 字段 | 类型 | 字段名 | 说明 |");
builder.AppendLine("| ------------ | ------------ | ------------ | ------------ | ------------ | "); //builder.AppendLine(ProcessFix(jsonObject)); ProcessContent(jsonObject, , builder); return builder.ToString();
} static string ProcessContent(JsonObject jsonObject, int deep, StringBuilder builder)
{
string format = string.Empty; if (deep == )
format = "|{0}|{1}| ||";
else
{
int paddinLeft = + (deep-) * ;
format = "|<span style=\"padding-left: "+paddinLeft.ToString()+"px\">├─ {0}|{1}| | | |";
} foreach (var item in jsonObject.Members)
{
if (item.Value.GetType() == typeof(JsonNumber))
builder.AppendFormat(format, item.Name, "number"); else if (item.Value.GetType() == typeof(JsonObject))
{
builder.AppendFormat(format, item.Name, "Object");
builder.Append(System.Environment.NewLine);
ProcessContent(item.Value as JsonObject, deep + , builder);
}
else if (item.Value.GetType() == typeof(JsonNull))
builder.AppendFormat(format, item.Name, ""); else if (item.Value.GetType() == typeof(JsonBoolean))
builder.AppendFormat(format, item.Name, "bool"); else if (item.Value.GetType() == typeof(JsonString))
builder.AppendFormat(format, item.Name, "string"); else
builder.AppendFormat(format, item.Name, ""); builder.Append(System.Environment.NewLine);
} return string.Empty;
} }
JSON AST 生成MD的更多相关文章
- 写了个脚本将json换成md
用python 脚本将protocol.json中的json按照templete.md模版生成,结果在protocol.md中 Python: #!/usr/bin/python # -*- codi ...
- [Vue源码]一起来学Vue模板编译原理(二)-AST生成Render字符串
本文我们一起通过学习Vue模板编译原理(二)-AST生成Render字符串来分析Vue源码.预计接下来会围绕Vue源码来整理一些文章,如下. 一起来学Vue双向绑定原理-数据劫持和发布订阅 一起来学V ...
- Web 开发人员必备的随机 JSON 数据生成工具
在 Web 开发中,经常会需要一些测试数据来测试接口或者功能时候正确.JSON Generator 就是这样一款生成随机 JSON 数据的在线工具,Web 开发人员必备,记得收藏和分享啊. 您可能感兴 ...
- java中json数据生成和解析(复杂对象演示)
1.json简单介绍 1.1 json是最流行和广泛通用的数据传输格式,简称JavaScript Object Notation,最早在JavaScript中使用. 1.2 举个例子,下面是一个jso ...
- GreenDao 工具类 --- 使用 Json 快速生成 Bean、表及其结构,"炒鸡"快!
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...
- .NetCore2.1 WebAPI 根据swagger.json自动生成客户端代码
前言 上一篇博客中我们可以得知通过Swagger插件可以很方便的提供给接口开发者在线调试,但是实际上Swagger附带的功能还有很多, 比如使用NSwag生成客户端调用代码,进一步解放接口开发者. N ...
- As/IDEA json自动生成java bean
1.先安装GsonFormat插件:File-->Setting-->Plugins-->GsonFormat-->OK 2.new 一个新的Class空文件,然后 Alt+I ...
- QT json字符串生成和解析
1 QT json字符串生成和解析 1.1 QT Json解析流程 (1) 字符串转化为QJsonDocument QJsonParseError json_error; QJso ...
- 小工具:使用Python自动生成MD风格链接
很久之前我在Github上搞了一个LeetCode的仓库,但一直没怎么维护.最近发现自己刷了不少LC的题目了,想搬运到这个仓库上. 玩Github最重要的当然是写README了,MD的逼格决定了项目牛 ...
随机推荐
- DAY6:文件读取
文件读取: f = open("文件名","r",encoding="utf-8").read()#文件读取 print(f) 写入文件 ...
- return 返回值
# ### return 返回值 """ (1) return + 数据类型 : 将这个数据弹到函数的调用处,后面除了可以接六大标准数据类型之外,还可以返回类 对象 函数 ...
- LINUX磁盘分区
在学习 Linux 的过程中,安装 Linux 是每一个初学者的第一个门槛.在这个过程中间,最大的困惑莫过于给硬盘进行分区.虽然,现在各种发行版本的 Linux 已经提供了友好的图形交互界面,但是很多 ...
- CentOS6.5 安装vncserver实现图形化访问
一. 安装gnome图形化桌面 #yum groupinstall -y "X Window System" #yum groupinstall -y "Desktop& ...
- java利用itext导出pdf
项目中有一功能是导出历史记录,可以导出pdf和excel,这里先说导出pdf.在网上查可以用那些方式导出pdf,用itext比较多广泛. 导出pdf可以使用两种方式,一是可以根据已有的pdf模板,进行 ...
- amazeUI的confirm控件记录缓存问题的解决办法
场景:列表行每行都有删除按钮,点击删除按钮将行记录的id传给js方法,js方法中调用amazeui的confirm控件,确认删除function通过ajax执行删除行为. 问题现象:每次删除列表第一行 ...
- 最新版本汉化-PowerDesigner 16.6 汉化并河蟹
更新日志: 2019-03-14 V1.1 1.支持反复多次汉化: 2.修复少许bug. 最新的16.6版本已经在汉化中了,基本上所有的菜单均已汉化完成,部分窗体还没有编译通过. 不过,不影响尝鲜使用 ...
- Jenkins-client模式配置
Jenkins配置master-slave模式 本来想着先写一篇jenkins安装的流程,但是现在jenkins做的已经非常完善了,有.war文件,直接在tomcat启动即可,所以这里就不多说了,小白 ...
- WPF-在Grid中编程添加控件
摘要: 在Grid中编程添加控件,布局控件的位置用到的代码是: gridLayout.Children.Add(textblock); Grid.SetRow(textblock, ); Grid.S ...
- 个人项目cpu占用图