개발하는 두더지

[C# / UWP ] UWP에서 Newtonsoft.json 사용하기 본문

C,C++

[C# / UWP ] UWP에서 Newtonsoft.json 사용하기

덜지 2017. 1. 25. 18:22

Newtonsoft.Json 이란?


닷넷프레임워크가 올려져있는 프로젝트에서 JSON을 다양한 기능을 사용할 수 있는 오픈소스입니다.


Newtonsoft.Json 샘플 사이트 ( http://www.newtonsoft.com/json/help/html/Samples.htm )


JSON Viewer 사이트 ( http://jsonviewer.stack.hu/ )


JSON 결과값을 클래스로 만들어주는 사이트 ( http://json2csharp.com/ )





Visual Studio 2015 + UWP + Newtonsoft.JSON 사용방법 알아보기


먼저 JSON을 설치해야하므로 도구 -> Nuget패키지 관리자 -> 솔루션용 Nuget 패키지 관리를 클릭합니다.




찾아보기에서 JSON을 검색하면 Newtonsoft.Json이 나옵니다.




적용시킬 프로젝트에다가 




project.lock.json 에 아래와 같이 설정됩니다.



만약 실행중 클래스를 찾을수 없다는 에러 발생시 참조에 추가


System.IO.FileLoadException : Could not load file or assembly 'Newtonsoft.Json, Version=10.0.2 ...





" C:\사용자\.nuget\packages\Newtonsoft.Json\10.0.2\lib\portable-net45+win8+wpa81+wp8\Newtonsoft.Json.dll " 을 참조하시면 됩니다.





심플 JSON 예제


MainPage.xaml


1
2
3
4
5
6
7
8
9
10
11
<Page
    ...
    mc:Ignorable="d">
 
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <TextBlock x:Name="textBlock" FontSize="30" TextWrapping="Wrap"/>
    </Grid>
</Page>
cs



MainPage.xaml.cs


using Newtonsoft.Json; 을 선언하면 JsonConvert를 사용할 수 있습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
 
            Product product = new Product();
            product.Name = "Apple";
            product.ExpiryDate = new DateTime(20170523);
            product.Price = 3.99M;
            product.Sizes = new string[] { "Small""Medium""Large" };
 
            string output = JsonConvert.SerializeObject(product);
            textBlock.Text = output;
 
            Product product2 = JsonConvert.DeserializeObject<Product>(output);
            textBlock.Text = product2.Name + "\n" +
                product2.ExpiryDate.ToString() + "\n" +
                product2.Price + "\n" +
                product2.Sizes[0+ "\n";
 
        }
    }
cs



Product class

1
2
3
4
5
6
7
    public class Product
    {
        public string Name { get; set; }
        public DateTime ExpiryDate { get; set; }
        public decimal Price { get; set; }
        public IList<string> Sizes { get; set; }
    }
cs


Comments