使用 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;
} }

最新文章

  1. MongooseHelper
  2. KBMMW 4.93.00 发布
  3. 解决Windows10下80端口被PID为4的System占用的问题
  4. docker 1.0.0发布以及一个bug依赖apparmor_parser
  5. 内核源码分析之linux内核栈(基于3.16-rc4)
  6. easyui常用控件样式收藏
  7. Qt 学习之路 :线程简介
  8. ural 1180 Stone Game
  9. .net通用权限框架B/S(二) 数据库设计
  10. Java--Socket通信(双向)
  11. Golang 入门系列(三)Go语言基础知识汇总
  12. Java线程安全与锁优化
  13. [UFLDL] *Train and Optimize
  14. Spring4相关jar包介绍(转)
  15. JavaWeb学习篇--Filter过滤器
  16. vs2017编译网狐荣耀服务端的心得
  17. iOS - 浅谈LLDB调试器
  18. Python 中的 sys.argv 用法
  19. Altera三速以太网IP核使用(下篇)--- 百兆网接口设计与使用
  20. threading.local()方法;线程池

热门文章

  1. carthage和cocoapods
  2. JavaScript中的各种宽高总结
  3. Navicat连接mysql出现1045错误
  4. python学习笔记 18-4-11
  5. 搭建SSM(Spring+SpringMVC+Mybatis)
  6. java8-lambda常用语法示例
  7. 08_java基础知识——方法重载
  8. java数字转IP 一行
  9. Python全栈之路----常用模块----shutil模块
  10. 构建之法 chapter 8 需求分析 ——读书心得