반응형

* C# Json 파일 읽기 쓰기 예제...

(System.Net.Json.dll) 파일 참조 

 

System.Net.Json.dll
0.02MB

위 첨부된 파일을 다운 받아 dll 참조 추가를 해줍니다.

오른쪽에 솔루션 탐색기가 나타나지 않는다면, 상단 메뉴 (보기) -> (솔루션탐색기) 를 선택 해 줍니다.

 

참조에서 마우스 오른쪽버튼 클릭

 

찾아보기 탭에서 System.Net.Json.dll 파일 위치를 찾아가셔서 클릭 후 추가 해 줍니다.

참고로 저 같은 경우 항상 참조 dll 은 프로젝트 생성 폴더에 같이 놔두기에 위와 같이 바로 찾을 수 있음.

 

참조가 정상적으로 이루어 졌음 위와 같은 그림이 나오게 됩니다.

 

* 예제 메인화면

전체 소스코드

Form1.cs

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Net.Json;

namespace CSharp_JsonFileReadWrite
{
    public partial class Form1 : Form
    {
        //현재 EXE 파일이 생성 되는 폴더 위치
        string strLocalPath = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf('\\'));

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //파일이 존재한다면 삭제...
            if (System.IO.File.Exists(strLocalPath + "\\Test.json"))
            {
                System.IO.File.Delete(strLocalPath + "\\Test.json");
            }

            //Json Write...
            JsonObjectCollection root = new JsonObjectCollection();

            //Json Title 정하기 Server_Info
            JsonArrayCollection jacServer = new JsonArrayCollection("Server_Info");

            //Json Title 에 속한 노드(속성) 만들기
            JsonObjectCollection joc = new JsonObjectCollection();
            joc.Add(new JsonStringValue ("IP", "192.168.0.11"));
            joc.Add(new JsonStringValue("PW", "1231231231"));
            joc.Add(new JsonStringValue("DataBase", "TEST"));
            jacServer.Add(joc);

            JsonArrayCollection jacTest = new JsonArrayCollection("Test_Info");
            JsonObjectCollection joc2 = new JsonObjectCollection();
            joc2.Add(new JsonStringValue("X", "100"));
            joc2.Add(new JsonStringValue("Y", "200"));
            joc2.Add(new JsonStringValue("Z", "300"));
            jacTest.Add(joc2);

			//최상위 노드에 속성 노드 추가
            root.Add(jacServer);
            root.Add(jacTest);

            //파일에 쓰기...
            string strRoot = root.ToString();
            textBox1.Text = strRoot;
            System.IO.File.WriteAllText("Test.json", strRoot);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //파일이 존재 하지 않으면...
            if (!System.IO.File.Exists(strLocalPath + "\\Test.json")) return;

            //Json Read...
            string strReturnValue = System.IO.File.ReadAllText("Test.json");
            if (strReturnValue == "")
            {
                MessageBox.Show("불러오기 실패...");
                return;
            }
            //Json 으로 바꾸기...
            JsonTextParser jtr = new JsonTextParser();
            JsonObject jo = jtr.Parse(strReturnValue);

            JsonObjectCollection jac = (JsonObjectCollection)jo;
            JsonArrayCollection arr1 = jac["Server_Info"] as JsonArrayCollection;
            JsonArrayCollection arr2 = jac["Test_Info"] as JsonArrayCollection;

            textBox2.Text = "";

            foreach (JsonObjectCollection joc in arr1)
            {
                textBox2.Text += "Server_Info" + System.Environment.NewLine;
                textBox2.Text += "IP: " + joc["IP"].GetValue().ToString() + System.Environment.NewLine;
                textBox2.Text += "PW: " + joc["PW"].GetValue().ToString() + System.Environment.NewLine;
                textBox2.Text += "DataBase: " + joc["DataBase"].GetValue().ToString() + System.Environment.NewLine;
            }

            textBox2.Text += System.Environment.NewLine;

            foreach (JsonObjectCollection joc2 in arr2)
            {
                textBox2.Text += "Test_Info" + System.Environment.NewLine;
                textBox2.Text += "X: " + joc2["X"].GetValue().ToString() + System.Environment.NewLine;
                textBox2.Text += "Y: " + joc2["Y"].GetValue().ToString() + System.Environment.NewLine;
                textBox2.Text += "Z: " + joc2["Z"].GetValue().ToString() + System.Environment.NewLine;
            }

        }



    }
}

 

* 예제 결과

 

Write Button Click

 

Read Button Click

 

반응형

+ Recent posts