Computer/Algorithm
JSON 포맷 스트링 예쁘게 출력하는 코드(JsonPrettyPrint)
Minwook Chang
2017. 8. 7. 17:15
Json 형식의 스트링을 받아 출력해야 할 때가 있다. Microsoft Cognitive Service를 하다가 JsonPrettyPrint라는 코드를 발견했다.
static string JsonPrettyPrint(string json){if (string.IsNullOrEmpty(json))return string.Empty;json = json.Replace(Environment.NewLine, "").Replace("\t", "");StringBuilder sb = new StringBuilder();bool quote = false;bool ignore = false;int offset = 0;int indentLength = 3;foreach (char ch in json){switch (ch){case '"':if (!ignore) quote = !quote;break;case '\'':if (quote) ignore = !ignore;break;}if (quote)sb.Append(ch);else{switch (ch){case '{':case '[':sb.Append(ch);sb.Append(Environment.NewLine);sb.Append(new string(' ', ++offset * indentLength));break;case '}':case ']':sb.Append(Environment.NewLine);sb.Append(new string(' ', --offset * indentLength));sb.Append(ch);break;case ',':sb.Append(ch);sb.Append(Environment.NewLine);sb.Append(new string(' ', offset * indentLength));break;case ':':sb.Append(ch);sb.Append(' ');break;default:if (ch != ' ') sb.Append(ch);break;}}}return sb.ToString().Trim();}
출처 : https://docs.microsoft.com/ko-kr/azure/cognitive-services/face/quickstarts/csharp