프로그래밍/C,C++,C#

[C#] 가장 간단한 Json사용

Beginner:) 2022. 7. 5.
320x100

0. [도구] - [NuGet 패키지 관리자] - [솔루션용 NuGet 패키지 관리]에서 "Newtonsoft.Json"을 설치

 

1. Json형 String -> Object

using Newtonsoft.Json;
using System;

namespace csharptest
{
    class Program
    {
        static void Main(string[] args)
        {
            dynamic obj = JsonConvert.DeserializeObject("{ 'name': 'Park', 'nick': 'Duck'}");

            string name = obj.name;
            string address = obj.nick;

            Console.WriteLine(name);
            Console.WriteLine(address);
        }
    }
}

//결과 : Park, Duck

 

 

 

2. Json형 String -> 임의의 구조체나 클래스

using Newtonsoft.Json;
using System;

struct Temp
{
    public string name;
    public string nick;
}

namespace csharptest
{
    class Program
    {
        static void Main(string[] args)
        {
            dynamic obj = JsonConvert.DeserializeObject<Temp>("{ 'name': 'Park', 'nick': 'Duck'}");

            string name = obj.name;
            string address = obj.nick;

            Console.WriteLine(name);
            Console.WriteLine(address);
        }
    }
}

//결과 : Park, Duck

 

 

반응형

3. Object -> Json

using Newtonsoft.Json;
using System;

struct Temp
{
    public string name;
    public string nick;
    
}

namespace csharptest
{
    class Program
    {
        static void Main(string[] args)
        {
            Temp temp = new Temp();
            temp.name = "Park";
            temp.nick = "Duck";

            string json = JsonConvert.SerializeObject(temp);
            Console.WriteLine(json);   
        }
    }
}

// 결과 : {"name":"Park","nick":"Duck"}

 

4. LINQ -> Json

using Newtonsoft.Json.Linq;
using System;

namespace csharptest
{
    class Program
    {
        static void Main(string[] args)
        {
            JObject temp = new JObject();
            temp["name"] = "Park";
            temp["nick"] = "Duck";
            
            JObject info = new JObject();
            info["age"] = 100;
            info["weight"] = "200";
            info["height"] = 3;
            temp["info"] = info;

            JArray array = new JArray();
            array.Add(1);
            array.Add(2);
            array.Add(3);
            temp["count"] = array;
            string json = temp.ToString();
            Console.WriteLine(json);
        }
    }
}

/* 결과
{
  "name": "Park",
  "nick": "Duck",
  "info": {
    "age": 100,
    "weight": "200",
    "height": 3
  },
  "count": [
    1,
    2,
    3
  ]
}
*/
반응형

댓글