2017. 8. 7. 17:15, Computer/Algorithm
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
'Computer > Algorithm' 카테고리의 다른 글
C++ 길이가 다른 라인 스트링 분할 Strtok 예제 (0) | 2016.11.16 |
---|---|
How to convert string buffer to int(float) fast in C++(고정된 길이 문자열을 숫자로 빠르게 변환) (0) | 2016.11.15 |
How to Read Big File in C++ (대용량 파일 읽기) (2) | 2016.11.15 |
c++ std 이용하여 string을 unsigned int로 변환하기 (0) | 2016.10.30 |
c++ std 이용하여 string 분할하기 (0) | 2016.10.03 |
Comments, Trackbacks