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的逼格决定了项目牛 ...
随机推荐
- 通过Mybatis原始Dao来实现curd操作
环境的配置见我上一篇博客. 首先,在上一篇博客中,我们知道,SqlSession中封装了对数据库的curd操作,通过sqlSessionFactory可以创建SqlSession,而SqlSessio ...
- python并发_线程
关于进程的复习: # 管道 # 数据的共享 Manager dict list # 进程池 # cpu个数+1 # ret = map(func,iterable) # 异步 自带close和join ...
- Mac下安装证书fiddlerRoot.cer
Step 1: 设置Mac的代理如下 Step 2:打开127.0.0.1:8888,下载fiddlerRoot.cer; Step 3:下载好了,双击安装,但是默认这个证书是不可信的,你需要在钥匙串 ...
- vue-router 重难点总结笔记
1,使用动态路由配置的(如:‘:id’),可以在this.$router.params.id获得. 官网例子: 模式 匹配路径 $route.params /user/:username /user/ ...
- key单片机按键抖动
//write by:cyt //Time:2017-2-10 //Porject Name:key shake_destory #include<reg51.h> #define GPI ...
- 排序总结(java)
public class sort { public static void main(String[] args) { int[] arr = {2, 5, 3, 4, 8, 5, 1}; //so ...
- JAVA高级-面试题总结
最近面试了一些公司,针对面试中遇到的问题在此记录,提升自己,造福大家 一.java源码相关 ArrayList创建和add等各种api使用原理 HashMap 的创建,put原理,和HashTable ...
- Anagram字符串处理(STL真方便啊。。)
题意:给出一些字符串,认为各个字符个数相同的字符串就是相同的,不区分大小写,找出这些字符串中不与其他字符串相同的字符串并挨个输出 用char orgin[][]把每个字符串保存起来,然后对每个字符串都 ...
- Python SyntaxError: invalid token
python命名不能以数字开头,import时会报错
- 二、Windows 下 ShellCode 编写初步
第二章.Windows 下 ShellCode 编写初步 (一)shellcode 定义:最先的 Shell 指的是人机交互界面,ShellCode 是一组能完成我们想要的功能的机器代码,通常以十六进 ...