zoukankan      html  css  js  c++  java
  • Json 格式化显示

    ---

    public string Process(string inputText)
    {
    bool escaped = false;
    bool inquotes = false;
    int column = 0;
    int indentation = 0;
    Stack<int> indentations = new Stack<int>();
    int TABBING = 8;
    StringBuilder sb = new StringBuilder();
    foreach (char x in inputText)
    {
    sb.Append(x);
    column++;
    if (escaped)
    {
    escaped = false;
    }
    else
    {
    if (x == '\')
    {
    escaped = true;
    }
    else if (x == '"')
    {
    inquotes = !inquotes;
    }
    else if (!inquotes)
    {
    if (x == ',')
    {
    // if we see a comma, go to next line, and indent to the same depth
    sb.Append(" ");
    column = 0;
    for (int i = 0; i < indentation; i++)
    {
    sb.Append(" ");
    column++;
    }
    }
    else if (x == '[' || x == '{')
    {
    // if we open a bracket or brace, indent further (push on stack)
    indentations.Push(indentation);
    indentation = column;
    }
    else if (x == ']' || x == '}')
    {
    // if we close a bracket or brace, undo one level of indent (pop)
    indentation = indentations.Pop();
    }
    else if (x == ':')
    {
    // if we see a colon, add spaces until we get to the next
    // tab stop, but without using tab characters!
    while ((column % TABBING) != 0)
    {
    sb.Append(' ');
    column++;
    }
    }
    }
    }
    }
    return sb.ToString();
    }

    public static string FormatOutput(string jsonString)
    {
    var stringBuilder = new StringBuilder();

    bool escaping = false;
    bool inQuotes = false;
    int indentation = 0;

    foreach (char character in jsonString)
    {
    if (escaping)
    {
    escaping = false;
    stringBuilder.Append(character);
    }
    else
    {
    if (character == '\')
    {
    escaping = true;
    stringBuilder.Append(character);
    }
    else if (character == '"')
    {
    inQuotes = !inQuotes;
    stringBuilder.Append(character);
    }
    else if (!inQuotes)
    {
    if (character == ',')
    {
    stringBuilder.Append(character);
    stringBuilder.Append(" ");
    stringBuilder.Append(' ', indentation);
    }
    else if (character == '[' || character == '{')
    {
    stringBuilder.Append(character);
    stringBuilder.Append(" ");
    stringBuilder.Append(' ', ++indentation);
    }
    else if (character == ']' || character == '}')
    {
    stringBuilder.Append(" ");
    stringBuilder.Append(' ', --indentation);
    stringBuilder.Append(character);
    }
    else if (character == ':')
    {
    stringBuilder.Append(character);
    stringBuilder.Append(' ');
    }
    else
    {
    stringBuilder.Append(character);
    }
    }
    else
    {
    stringBuilder.Append(character);
    }
    }
    }

    return stringBuilder.ToString();
    }

  • 相关阅读:
    python中的 if __name__ == “__main__”: 有什么用
    LeetCode Two Sum 解题思路(python)
    numpy cheat sheet
    matlab中换行
    从github下载一个单一文件
    tensorflow轮子下载地址 wheels(whl)
    tensorflow报错 Key Conv/biases not found in checkpoint
    tensorflow报错 tensorflow Resource exhausted: OOM when allocating tensor with shape
    西门子 1500 1200 PLC,位访问, 字节访问
    查看pip install安装的python包的位置
  • 原文地址:https://www.cnblogs.com/haobadea/p/5620800.html
Copyright © 2011-2022 走看看