using System;
using System.Collections.Generic;
using System.Text;
namespace UVC.Extention
{
///
/// Dictionary 클래스에 대한 확장 메소드를 제공하는 클래스입니다.
///
public static class DictionaryEx
{
///
/// Dictionary를 JSON 문자열로 변환합니다.
/// 중첩된 Dictionary 객체도 재귀적으로 처리합니다.
///
/// Dictionary의 키 타입
/// Dictionary의 값 타입
/// JSON 문자열로 변환할 Dictionary 객체
/// JSON 형식의 문자열
///
///
/// var dict = new Dictionary
/// {
/// { "name", "홍길동" },
/// { "age", 30 },
/// { "address", new Dictionary { { "city", "서울" }, { "zip", "12345" } } }
/// };
///
/// string json = dict.ToJson();
/// // 결과: {"name":"홍길동","age":"30","address":{"city":"서울","zip":"12345"}}
///
///
public static string ToJson(this IDictionary dict)
{
if (dict == null || dict.Count == 0)
return "{}";
var sb = new StringBuilder("{");
foreach (var kvp in dict)
{
sb.Append($"\"{kvp.Key}\":");
// 값이 null인 경우 처리
if (kvp.Value == null)
{
sb.Append("null,");
continue;
}
// 값이 중첩된 Dictionary인 경우 재귀적으로 처리
if (kvp.Value is IDictionary