반응형

* VBNET 가변 전달 인자 Params 키워드 예제...

 

메인화면

전체 소스 코드

Form1.vb

 

Public Class Form1

    Private Sub ParamsEx(ByVal strTmp As String, ByVal ParamArray sParam() As String)

        lbList.Items.Add(strTmp)

        '1번째 방법
        'For Each s As String In sParam
        'lbList.Items.Add(s)
        'Next

        '2번째 방법
        For iCount As Integer = 0 To sParam.Length - 1
            lbList.Items.Add(sParam(iCount))
        Next


    End Sub



    Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
        lbList.Items.Clear()

        '1
        ParamsEx("TEST1", "1")

        lbList.Items.Add("=================")

        '2
        ParamsEx("TEST2", "1", "12")

        lbList.Items.Add("=================")

        '3
        ParamsEx("TEST3", "1", "12", "123")

        lbList.Items.Add("=================")

        '4
        ParamsEx("TEST4", "1", "12", "123", "1234")

        lbList.Items.Add("=================")

        '5
        ParamsEx("TEST5", "1", "12", "123", "12345")
    End Sub
End Class

* 위 ParamsEx 함수에서 보듯이 두번째 전달 인자에 params 키워드를 써서 가변 전달 인자로 받고 있습니다.

  아래의 그림과 같이 첫번째 전달 인자 이후 두번째 부턴 꼭 함수 오버로딩 된 듯한 형태로 나타 납니다.

 

  => 함수 오버로딩 : 간략히 같은 이름의 함수가 전달 인자 및 리턴 인자만 다른 형태

                            Ex) Sub ParamsEx(strTmp As String, s1 As String)

                                Sub ParamsEx(strTmp As String, s1 As String, s2 As String)

                                Sub ParamsEx(strTmp As String, s1 As String, s2 As String, s3 As String)

 

                                위 예제 처럼 함수 오버로딩 하면 아래의 그림 처럼 함수 호출이 되겠습니다.

 

* 예제 결과

 

반응형
반응형

* C# Params 키워드를 이용한 가변 전달 인자 예제...

 

전체 소스 코드

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;

namespace CSharp_Params
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void ParamsEx(string strTmp, params string[] sParam)
        {

            lbList.Items.Add(strTmp);

            /*
             * 1 번째 방법
            foreach (string s in sParam)
            {
                lbList.Items.Add(s);
            }
            */

            //2번째 방법
            for (int iCount = 0; iCount < sParam.Length; iCount++)
            {
                lbList.Items.Add(sParam[iCount]);
            }

        }


        private void button1_Click(object sender, EventArgs e)
        {
            lbList.Items.Clear();

            //1
            ParamsEx("TEST1", "1");

            lbList.Items.Add("=================");

            //2
            ParamsEx("TEST2", "1", "12");

            lbList.Items.Add("=================");

            //3
            ParamsEx("TEST3", "1", "12","123");

            lbList.Items.Add("=================");

            //4
            ParamsEx("TEST4", "1", "12", "123","1234");

            lbList.Items.Add("=================");

            //5
            ParamsEx("TEST5", "1", "12", "123","12345");
        }
    }
}

* 위 ParamsEx 함수에서 보듯이 두번째 전달 인자에 params 키워드를 써서 가변 전달 인자로 받고 있습니다.

  아래의 그림과 같이 첫번째 전달 인자 이후 두번째 부턴 꼭 함수 오버로딩 된 듯한 형태로 나타 납니다.

 

  => 함수 오버로딩 : 간략히 같은 이름의 함수가 전달 인자 및 리턴 인자만 다른 형태

                            Ex) void ParamsEx(string strTmp, string s1)

                                void ParamsEx(string strTmp, strgin s1, string s2)

                                void ParamsEx(string strTmp, strgin s1, string s2, s

 

                                위 예제 처럼 함수 오버로딩 하면 아래의 그림 처럼 함수 호출이 되겠습니다.

 

* 또한 parmas 키워드 사용 시 주의 사항으로는 반드시 맨 마지막 전달 인자로 와야 한다는 것!!!!

  아래의 그림 참조

 

* 예제 결과

 

반응형
반응형

* Android Layout 숨기기 및 보이기 예제...

 

LinearLayout llPlay;

 

//컨트롤 연결...
llPlay = (LinearLayout)findViewById(R.id.NowPlay);

 

//llPlay.setVisibility(View.VISIBLE);
//해당 뷰를 보여줌


//llPlay.setVisibility(View.INVISIBLE);
//해당 뷰를 안 보여줌(공간은 존재)

 


llPlay.setVisibility(View.GONE);
//해당 뷰를 안 보여줌(공간마저 감춤)

 

 

반응형
반응형

* 안드로이드 내부 해당 폴더 안 파일 목록 불러오기

 

private List<String>  FileList(String strFolderName)
{
    String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + strFolderName;

    File directory = new File(path);
    File[] files = directory.listFiles();

    List<String> filesNameList = new ArrayList<>();

    for (int i=0; i< files.length; i++) {
        filesNameList.add(files[i].getName());
    }
    
    return  filesNameList;
}

반응형
반응형

* VBNET Json Parsing 을 이용한 로또 (Lotto) 당첨번호 읽어 오기 예제...

 

메인화면

전체 소스 코드

Form1.vb

 

Imports System.Net 
Imports System.IO 
Imports System.Net.Json 

Public Class Form1 


    Private Function GetHttpLottoString(ByVal strUri As String) As String 
        Dim strResponseText As String = String.Empty 

        Dim request As HttpWebRequest = CType(WebRequest.Create(strUri), HttpWebRequest) 
        request.Method = "GET" 

        '웹리퀘스트 타임아웃  
        request.Timeout = 20 * 1000 ' 20초 
        'request.Headers.Add("Authorization", "BASIC SGVsbG8="); // 헤더 추가 방법 

        '응답 받기... 
        Using hwr As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse) 

            '응답이 정상적으로 이루어 졌으면... 
            If hwr.StatusCode = HttpStatusCode.OK Then 
                Dim respStream As Stream = hwr.GetResponseStream() 

                Using sr As StreamReader = New StreamReader(respStream) 
                    strResponseText = sr.ReadToEnd() 
                End Using 

            Else 
                strResponseText = "" 
            End If 

        End Using 

        Return strResponseText 
    End Function 

    Private Function IsNullString(ByVal str As String) As Boolean 
        Return String.IsNullOrEmpty(str) 
    End Function 

    Private Function IsInt(ByVal ob As Object) As Integer 
        If ob Is Nothing Then 
            Return 0 
        End If 

        Dim iCheck As Integer = 0 
        Dim bCheck As Boolean = Integer.TryParse(ob.ToString(), iCheck) 

        If Not bCheck Then 
            Return 0 
        End If 

        Return iCheck 
    End Function 

    Private Sub button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button2.Click 
        '빈값이거나 null 값이면... 
        If IsNullString(textBox1.Text) Then 
            MessageBox.Show("빈 값일 순 없습니다.") 
            Return 
        End If 

        '숫자가 아니면... 
        If IsInt(textBox1.Text) = 0 Then 
            MessageBox.Show("숫자만 입력 해 주세요.") 
            Return 
        End If 

        '로또 회차 넘버 불러오기... 
        Dim strReturnValue As String = GetHttpLottoString("https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo=" + textBox1.Text) 

        If strReturnValue = "" Then 
            MessageBox.Show("Lotto Number 불러오기 실패...") 
            Return 
        End If 


        'Json 으로 바꾸기... 
        Dim jtr As JsonTextParser = New JsonTextParser() 
        Dim jo As JsonObject = jtr.Parse(strReturnValue) 

        Dim jac As JsonObjectCollection = CType(jo, JsonObjectCollection) 

        '불러오기가 성공 하면... 
        textBox2.Text = "" 
        If jac("returnValue").GetValue().ToString() = "success" Then 
            '텍스트 박스에 뿌려주기... 
            textBox2.Text += "로또 당첨일: " + jac("drwNoDate").GetValue().ToString() + System.Environment.NewLine 
            textBox2.Text += "로또 회차: " + jac("drwNo").GetValue().ToString() + System.Environment.NewLine + System.Environment.NewLine 
            textBox2.Text += "1등 당첨금: " + jac("firstWinamnt").GetValue().ToString() + System.Environment.NewLine 
            textBox2.Text += "1등 당첨 인원: " + jac("firstPrzwnerCo").GetValue().ToString() + " 명" + System.Environment.NewLine 
            textBox2.Text += "누적 상금: " + jac("totSellamnt").GetValue().ToString() + System.Environment.NewLine + System.Environment.NewLine 
            textBox2.Text += "당첨 번호: " + jac("drwtNo1").GetValue().ToString() + _ 
                                        "," + jac("drwtNo2").GetValue().ToString() + _ 
                                        "," + jac("drwtNo3").GetValue().ToString() + _ 
                                        "," + jac("drwtNo4").GetValue().ToString() + _ 
                                        "," + jac("drwtNo5").GetValue().ToString() + _ 
                                        "," + jac("drwtNo6").GetValue().ToString() + System.Environment.NewLine 
            textBox2.Text += "보너스 번호: " + jac("bnusNo").GetValue().ToString() + System.Environment.NewLine 
        End If 


    End Sub 

    Private Sub textBox1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles textBox1.KeyDown 
        '사용자가 엔터키를 입력 하면... 
        If e.KeyCode = Keys.Enter Then 
            '버튼 이벤트 함수 불러오기 
            button2_Click(Nothing, Nothing) 
        End If 

    End Sub 

End Class

 

 

* 예제 결과

 

결과 화면

 

↓ 참조 문서 

 

https://kdsoft-zeros.tistory.com/98

 

[VBNET] Json File Write & Read 예제...

* VBNET Json 파일 읽고 쓰기 예제... (System.Net.Json.dll) 파일 참조 위 첨부된 파일을 다운 받아 dll 참조 추가를 해줍니다. 오른쪽에 솔루션 탐색기가 나타나지 않는다면, 상단 메뉴 (보기) -> (솔루션탐색..

kdsoft-zeros.tistory.com

https://kdsoft-zeros.tistory.com/77

 

[VBNET] string 을 int 및 double 형으로 변환 하기, string null 체크

* string 문자열을 정수 및 실수 형으로 변환 하기 예제... 전체 소스코드 Form1.vb Public Class Form1 Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butto..

kdsoft-zeros.tistory.com

 

반응형
반응형

* C# Json Parsing 을 이용한 로또 (Lotto) 당첨 번호 읽어 오기 예제...

 

메인화면

 

전체 소스 코드

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;
using System.Net;
using System.IO;

namespace CSharp_JsonParsing
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        #region 사용자 정의 함수...
        private string GetHttpLottoString(string strUri)
        {
            string strResponseText = string.Empty;

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strUri);
            request.Method = "GET";

            //웹리퀘스트 타임아웃 
            request.Timeout = 20 * 1000; // 20초
            //request.Headers.Add("Authorization", "BASIC SGVsbG8="); // 헤더 추가 방법

            //응답 받기
            using (HttpWebResponse hwr = (HttpWebResponse)request.GetResponse())
            {
                //응답이 정상적으로 이루어 졌으면... 
                if (hwr.StatusCode == HttpStatusCode.OK)
                {
                    Stream respStream = hwr.GetResponseStream();
                    using (StreamReader sr = new StreamReader(respStream))
                    {
                        strResponseText = sr.ReadToEnd();
                    }
                }
                else
                {
                    strResponseText = "";
                }
            }

            return strResponseText;
        }

        private bool IsNullString(string str)
        {
            return string.IsNullOrEmpty(str);
        }

        private int IsInt(object ob)
        {
            if (ob == null) return 0;

            int iCheck = 0;
            bool bCheck = int.TryParse(ob.ToString(), out iCheck);

            if (!bCheck)
            {
                return 0;
            }

            return iCheck;
        }
        #endregion

        private void button2_Click(object sender, EventArgs e)
        {
            //LotNo 불러오기...
            /*
                returnValue : json 결과값 (success 또는 fail)
                totSellamnt : 누적 상금
                drwNo : 로또회차
                drwNoDate : 로또당첨일시
                firstWinamnt : 1등 당첨금
                firstPrzwnerCo : 1등 당첨 인원
                firstAccumamnt : 1등 당첨금 총액
                drwtNo1 : 로또번호1
                drwtNo2 : 로또번호2
                drwtNo3 : 로또번호3
                drwtNo4 : 로또번호4
                drwtNo5 : 로또번호5
                drwtNo6 : 로또번호6
                bnusNo  : 보너스번호 
             */

            //빈값이거나 null 값이면...
            if (IsNullString(textBox1.Text))
            {
                MessageBox.Show("빈 값일 순 없습니다.");
                return;
            }

            //숫자가 아니면...
            if (IsInt(textBox1.Text) == 0)
            {
                MessageBox.Show("숫자만 입력 해 주세요.");
                return;
            }

            //로또 회차 넘버 불러오기...
            string strReturnValue = GetHttpLottoString("https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo=" + textBox1.Text );

            if (strReturnValue == "")
            {
                MessageBox.Show("Lotto Number 불러오기 실패...");
                return;
            }

            //Json 으로 바꾸기...
            JsonTextParser jtr = new JsonTextParser();
            JsonObject jo = jtr.Parse(strReturnValue);

            JsonObjectCollection jac = (JsonObjectCollection)jo;

            //불러오기가 성공 하면...
            textBox2.Text = "";
            if (jac["returnValue"].GetValue().ToString() == "success")
            {
                //텍스트 박스에 뿌려주기...
                textBox2.Text += "로또 당첨일: " + jac["drwNoDate"].GetValue().ToString() + System.Environment.NewLine;
                textBox2.Text += "로또 회차: " + jac["drwNo"].GetValue().ToString() + System.Environment.NewLine + System.Environment.NewLine;
                textBox2.Text += "1등 당첨금: " + jac["firstWinamnt"].GetValue().ToString() + System.Environment.NewLine;
                textBox2.Text += "1등 당첨 인원: " + jac["firstPrzwnerCo"].GetValue().ToString() + " 명" + System.Environment.NewLine;
                textBox2.Text += "누적 상금: " + jac["totSellamnt"].GetValue().ToString() + System.Environment.NewLine + System.Environment.NewLine;
                textBox2.Text += "당첨 번호: " + jac["drwtNo1"].GetValue().ToString()
                                       + "," + jac["drwtNo2"].GetValue().ToString()
                                       + "," + jac["drwtNo3"].GetValue().ToString()
                                       + "," + jac["drwtNo4"].GetValue().ToString()
                                       + "," + jac["drwtNo5"].GetValue().ToString()
                                       + "," + jac["drwtNo6"].GetValue().ToString() + System.Environment.NewLine;
                textBox2.Text += "보너스 번호: " + jac["bnusNo"].GetValue().ToString() + System.Environment.NewLine;
            }

            
        }

        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            //사용자가 엔터키를 입력 하면...
            if (e.KeyCode == Keys.Enter)
            {
                //버튼 클릭 이벤트 함수 호출 하기...
                button2_Click(null, null);
            }
        }



    }
}

로또 (Lotto) 당첨 번호 응답 받기 함수
버튼 이벤트 안 내용

* 예제 결과

 

결과 화면

 

↓ 참조 문서

 

https://kdsoft-zeros.tistory.com/97

 

[C#] Json File Write & Read 예제

* C# Json 파일 읽기 쓰기 예제... (System.Net.Json.dll) 파일 참조 위 첨부된 파일을 다운 받아 dll 참조 추가를 해줍니다. 오른쪽에 솔루션 탐색기가 나타나지 않는다면, 상단 메뉴 (보기) -> (솔루션탐색기)..

kdsoft-zeros.tistory.com

https://kdsoft-zeros.tistory.com/76

 

[C#] string 을 int 및 double 형으로 변환 하기, null 체크

* string 문자열을 정수 및 실수 형으로 변환 하기 예제... 전체 소스코드 Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing;..

kdsoft-zeros.tistory.com

 

반응형
반응형

* VBNET Json 파일 읽고 쓰기 예제...

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

 

 

System.Net.Json.dll
0.02MB

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

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

 

My Project 를 마우스 왼쪽 버튼 더블 클릭을 하면 위 그림 처럼 프로젝트 속성으로 들어 갈 수 있습니다.

왼쪽 참조 메뉴를 클릭 -> 추가 버튼을 클릭 합니다.

 

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

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

 

위 그림 처럼 나오게 되면 System.Net.Json 파일이 참조가 완료 되었습니다.

 

* 예제 메인화면

전체 소스코드

Form1.vb

 

Imports System.Net.Json

Public Class Form1

    '현재 EXE 파일이 생성 되는 폴더 위치
    Dim strLocalPath As String = Application.ExecutablePath.Substring(0, Application.ExecutablePath.LastIndexOf("\"))

    Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
        'Json Write
        '파일이 존재한다면 삭제...
        If System.IO.File.Exists(strLocalPath + "\\Test.json") Then
            System.IO.File.Delete(strLocalPath + "\\Test.json")
        End If

        'Json Write...
        Dim root As JsonObjectCollection = New JsonObjectCollection()

        'Json Title 정하기 Server_Info
        Dim jacServer As JsonArrayCollection = New JsonArrayCollection("Server_Info")

        'Json Title 에 속한 노드(속성) 만들기
        Dim joc As JsonObjectCollection = 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)

        Dim jacTest As JsonArrayCollection = New JsonArrayCollection("Test_Info")
        Dim joc2 As JsonObjectCollection = 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)

        '파일에 쓰기...
        Dim strRoot As String = root.ToString()
        textBox1.Text = strRoot
        System.IO.File.WriteAllText("Test.json", strRoot)

    End Sub

    Private Sub button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button2.Click
        'Json Read

        '파일이 존재 하지 않으면...
        If Not System.IO.File.Exists(strLocalPath + "\\Test.json") Then
            Return
        End If

        'Json Read...
        Dim strReturnValue As String = System.IO.File.ReadAllText("Test.json")
        If strReturnValue = "" Then
            MessageBox.Show("불러오기 실패...")
            Return
        End If

        'Json 으로 바꾸기...
        Dim jtr As JsonTextParser = New JsonTextParser()
        Dim jo As JsonObject = jtr.Parse(strReturnValue)

        Dim jac As JsonObjectCollection = CType(jo, JsonObjectCollection)
        Dim arr1 As JsonArrayCollection = CType(jac("Server_Info"), JsonArrayCollection)
        Dim arr2 As JsonArrayCollection = CType(jac("Test_Info"), JsonArrayCollection)

        textBox2.Text = ""

        '첫번째 속성 읽기...
        For Each joc As JsonObjectCollection 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
        Next

        textBox2.Text += System.Environment.NewLine

        '두번째 속성 읽기...
        For Each joc2 As JsonObjectCollection 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
        Next

    End Sub
End Class

 

* 예제 결과

 

Write Button Click

 

 

Read Button Click



https://kdsoft-zeros.tistory.com/97

 

[C#] Json File Write & Read 예제

* C# Json 파일 읽기 쓰기 예제... (System.Net.Json.dll) 파일 참조 위 첨부된 파일을 다운 받아 dll 참조 추가를 해줍니다. 오른쪽에 솔루션 탐색기가 나타나지 않는다면, 상단 메뉴 (보기) -> (솔루션탐색기)..

kdsoft-zeros.tistory.com

 

반응형
반응형

* 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