https://docs.microsoft.com/ko-kr/nuget/tools/package-manager-ui

c#에서 Json 파싱하기

NuGet 패키지 를 통해서 설치하기

 

설치 하 고 Visual Studio에서 NuGet 패키지 관리

Visual Studio에서 NuGet 패키지 관리자 UI를 사용 하 여 NuGet 패키지 사용에 대 한 지침입니다.

docs.microsoft.com

비주얼 스튜디오에서  Nuget 패키지 관리자 실행

Json.NET

Serialize JSON

Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Sizes = new string[] { "Small" };

string json = JsonConvert.SerializeObject(product);
// {
//   "Name": "Apple",
//   "Expiry": "2008-12-28T00:00:00",
//   "Sizes": [
//     "Small"
//   ]
// }

Deserialize JSON

string json = @"{
  'Name': 'Bad Boys',
  'ReleaseDate': '1995-4-7T00:00:00',
  'Genres': [
    'Action',
    'Comedy'
  ]
}";

Movie m = JsonConvert.DeserializeObject<Movie>(json);

string name = m.Name;
// Bad Boys

LINQ to JSON

JArray array = new JArray();
array.Add("Manual text");
array.Add(new DateTime(2000, 5, 23));

JObject o = new JObject();
o["MyArray"] = array;

string json = o.ToString();
// {
//   "MyArray": [
//     "Manual text",
//     "2000-05-23T00:00:00"
//   ]
// }

파싱예제

아래와 같은 JSON 형태

"class": "go.GraphLinksModel",
  "linkKeyProperty": "stepId",
  "modelData": {"position":"-5 -5"},
  "nodeDataArray": [ 
{"key":11, "category":"start", "text":"Start", "loc":"288 109"},
{"key":101, "category":"message", "text":"Message", "items":[ {"name":"Name", "value":"Message"},{"name":"Type", "value":"Step"},{"name":"Category", "value":"대분류"},{"name":"Size", "value":"120"},{"name":"Max Length", "value":"20"} ], "loc":"292 181"}
 ],
  "linkDataArray": [ {"from":11, "to":101, "stepId":-1, "items":[ {"name":"link", "value":"value1"},{"name":"propery1", "value":"value1"} ], "points":[288,129.5,288,139.5,288,147.1257080078125,292,147.1257080078125,292,154.751416015625,292,164.751416015625]} 

        private void Form1_Load(object sender, EventArgs e)
        {
            string s = this.textBox1.Text;
            //var m = JsonConvert.DeserializeObject<Dictionary<string, object>>(s);
            //if (m.TryGetValue("nodeDataArray", out result))
            //{
            //    var ss = result;
            //}
            //object result = "";

            JObject jo = JObject.Parse(s);
            var a = jo.SelectToken("nodeDataArray");
            var cnt = a.Count();
            foreach (var item in a)
            {
                var key = item.SelectToken("key").ToString();
                var category = item.SelectToken("category").ToString();
                var text = item.SelectToken("text").ToString();
                var items = item.SelectToken("items");

                if(items != null)
                {
                    foreach (var token in items)
                    {
                        var name = String.Format("{0}", token.SelectToken("name"));
                        var value = String.Format("{0}", token.SelectToken("value"));
                    }
                }
            }

        }

 

프로시저에서 두개의 값을 저장하기 위해 

같은 키값을 넣기 위해 저장할수 있다.

	INSERT INTO TB_A (ProjectName) VALUES (@pProjectName)
	SET @oId = @@IDENTITY
    
	--key(Id)를 값 저장하기 위해 IDENTITY_INSERT ON
	SET IDENTITY_INSERT TB_B ON
	INSERT INTO TB_B (Id ,ProjectName) VALUES (@oId ,@pProjectName)
	SET IDENTITY_INSERT TB_B OFF 

 

+ Recent posts