본문 바로가기
공부/여러가지 공부내용

[C#] json파일 불러와서 class로 저장하기, string변환하기

by 푸딩코딩 2024. 1. 16.
728x90
반응형

 

[
  {
    "sentence": "SELECT * TABLE1 "
  },
  {
    "sentence": "INSERT INTO TABLE1 (A, B, C) VALUES (a, b, c) "
  }
]

json파일 예시

 

 

C#과 오라클 DB가 상호작용하는 프로그램에서, C#에 Sql문을 넣지않고, 프로젝트에 쿼리문이 담긴 json파일을 두고 동적으로 호출하면, 프로그램 실행중에도 별도의 컴파일 없이 실시간으로 쿼리문을 수정할 수 있다. 

 json 파일은 텍스트파일이나 vs code등으로 열어서 편집하면 된다. 개인적으로는 txt파일이 편하다. 

 

 

 

C#에서 json파일을 쓰려면 Newtonsoft 패키지를 너겟에서 설치해야한다. 

 

코드 상단에

 

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

로 네임스페이스를 불러온다. 

 

 

사용하는 방법은, 

 

  public class SqlQryModel
    {
        public string sentence { get; set; }

    }

class 모델파일

       public string GetSqlQry(int index)
        {

            List<SqlQryModel> sql_ = new List<SqlQryModel>();
            string jsonFilePath = "../../Json/SqlQry.json";
            string jsonText = System.IO.File.ReadAllText(jsonFilePath);
            sql_ = JsonConvert.DeserializeObject<List<SqlQryModel>>(jsonText);

            return sql_[index].sentence;
        }

sql문을 반환하는 함수. 

먼저 클래스를 리스트로 엮어 콜렉션을 만든다. 그릇이 된다. 

json파일의 위치는 상대경로로 지정했따. '../'은 현재 디렉토리에서 상위 디렉토리로 갈 수 있는 명령어.

jsonfilepath의 text를 모두 읽어주어 jsonText에 저장하고, 

sql_ 콜렉션에 역직렬화하여 jsonText를 파싱해준다. 

마지막으로 index에 해당하는 sentence를 반환한다. 

 

클래스의 멤버 등을 수정하여 응용할 수 있다.  

 

json파일은 쉼표로 구분되어 각각 인덱스를 갖고, 함수를 호출할때 해당하는 인덱스를 넣어주면 원하는 쿼리문을 가져올 수 있다. 

 

수정이 외부에서 가능하고, 따라서 별도의 컴파일 없이 sql문을 바꿀 수 있다는 이점이 있다. sql문을 따로 모아 관리할 수 있어 편리하다. 

 

728x90
반응형