반응형
* C# Json 파일 읽기 쓰기 예제...
(System.Net.Json.dll) 파일 참조
위 첨부된 파일을 다운 받아 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;
}
}
}
}
* 예제 결과
반응형
'C# Programming' 카테고리의 다른 글
[C#] Params 키워드를 이용한 가변 전달 인자 예제 (0) | 2019.12.13 |
---|---|
[C#] Json Read 를 이용한 로또(Lotto) 당첨 번호 읽기 예제 (0) | 2019.12.09 |
[C#] 반올림 Math.Round() 예제 (0) | 2019.11.27 |
[C#] VB (Redim Preserve) 처럼 배열 크기(Size) 조절 하기 (0) | 2019.11.25 |
[C#] 32bit, 64 bit 운영 체제 체크하기 (1) | 2019.11.21 |