宇野  和也

宇野 和也

1634201280

Newtonsoft JSONシリアル化を使用したJSONシリアル化

今日の通信システムでは、JSONが1つの非常に重要な役割を果たしており、JSONはXMLに取って代わっていると言えますが、XMLには独自の美しさがあり、JSONがXMLの代替になることは決してないことを願っています。ただし、状況によっては、人々はXMLに精通しており、現在JSONを使用しています。

クライアントアプリケーションからのAJAX呼び出しについて考えてみてください。昔は(それほど古くはなく、AJAXも新しい概念です)、人々はXMLを使用してWebサービスやWCFサービスなどのサービスベースのアプリケーションと通信していました。しかし、Web APIの導入により、人々はデータエンコーディング形式としてJSONを使い始めました。

かっこいいです。JSONは軽量で、XMLのようにオーバーヘッド帯域幅を使用する不要なデータはありません。Web APIには、戻り値をJSON形式でシリアル化する機能が組み込まれていますが、開発者がデータをJSON形式でシリアル化する必要がある状況が存在します(WebFormの背後にあるコードの別のサービスまたはページメソッド)。

これで、コアトピックであるJSON形式でデータをシリアル化する方法に到達しました。それを行うには多くの方法があります。.NETクラスライブラリには、JSONデータをシリアル化するための独自のクラスがあります。もう1つの優れたオプションは、サードパーティコンポーネントのJSONシリアル化ライブラリを使用することです。この記事では、NewtonsoftJSONシリアル化ライブラリを使用してJSONデータをシリアル化します。

最初に、NuGetパッケージマネージャーを使用してNewtonsoft JSONシリアライザーパッケージをダウンロードしてインストールすると、現在のソリューションに次のリファレンスが表示されます。

Newtonsoft JSON

 

NewtonsoftJSONシリアライザーを使用してクラスオブジェクトをシリアル化する


この例では、JsonConvertクラスを使用してクラスオブジェクトをJSON形式にシリアル化する方法を学習します。これがクライアントアプリケーションの実装です。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="callAJAX.aspx.cs" Inherits="clientProject.callAJAX" %>  
<!DOCTYPE html>  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head id="Head1" runat="server">  
    <script src="JQuery.js" type="text/javascript"></script>  
    <script>  
               $(document).ready(function () {  
    $('#btn').click(function () {  
        var name = $('#name').val();  
        jQuery.ajax({  
            url: 'callAJAX.aspx/GetData',  
            type: "POST",  
            dataType: "json",  
            data: "{'name':'" + name + "'}",  
            contentType: "application/json; charset=utf-8",  
            success: function (data) {  
                alert(JSON.stringify(data));  
            }  
        });  
    });  
});  
    </script>  
</head>  
<body>  
    <input type="text" name="name" id="name" />  
    <input type="button" name="btn1" id="btn" value="ClickMe" />  
</body>  
</html>  

ここで、WebFormの背後にあるコードにGetData()関数を実装します。アプリケーションにNewtonsoft.Json名前空間が含まれており、Jsonconverterクラスの使用が許可されていることに注意してください。これがコードの実装です。

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Web;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
using System.Web.Services;  
using Newtonsoft.Json;  
namespace clientProject  
{  
    public class person  
    {  
        public string name { get; set; }  
    }  
    public partial class callAJAX : System.Web.UI.Page  
    {  
        protected void Page_Load(object sender, EventArgs e)  
        {  
        }  
        [WebMethod()]  
        public static string GetData(string name)  
        {  
            person p = new person();  
            p.name = name;  
            return JsonConvert.SerializeObject(p);  
        }  
    }  
}  

以下は上記の例の出力です。データがJSON形式で提供されていることがわかります。

JSON形式
 

NewtonsoftJSONシリアライザーを使用してリストをシリアル化する


ここで注意すべき点は、Newtonsoft JSONシリアライザーパッケージを使用して、ほぼすべてのデータ型(ユーザー定義と事前定義の両方)をシリアル化できることです。この例では、個人クラスのリストをシリアル化します。次の例を見てください。 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="callAJAX.aspx.cs" Inherits="clientProject.callAJAX" %>  
<!DOCTYPE html>  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head id="Head1" runat="server">  
    <script src="JQuery.js" type="text/javascript"></script>  
    <script>  
               $(document).ready(function () {  
    jQuery.ajax({  
        url: 'callAJAX.aspx/GetData',  
        type: "POST",  
        dataType: "json",  
        contentType: "application/json; charset=utf-8",  
        success: function (data) {  
            alert(JSON.stringify(data));  
        }  
    });  
});  
    </script>  
</head>  
</html>  

これは、個人クラスのリストをシリアル化するための実装の背後にあるコードです。

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Web;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
using System.Web.Services;  
using Newtonsoft.Json;  
namespace clientProject  
{  
    public class person  
    {  
        public string name { get; set; }  
    }  
    public partial class callAJAX : System.Web.UI.Page  
    {  
        protected void Page_Load(object sender, EventArgs e)  
        {  
        }  
        [WebMethod()]  
        public static string GetData()  
        {  
            List<person> p = new List<person>();  
            person p1 = new person();  
            p1.name = "Sourav";  
            person p2 = new person();  
            p2.name = "Ajay";  
            p.Add(p1);  
            p.Add(p2);  
            return JsonConvert.SerializeObject(p);  
        }  
    }  
}  

これがこの例の出力であり、リスト形式ではなくJSON形式でデータを取得しています。

JSON形式のデータ

結論

この記事では、NewtonsoftJSONシリアライザーを使用してデータをJSON形式にシリアル化する方法を学びました。概念を理解し、次のアプリケーションのJSONシリアル化シナリオでこのライブラリを使用することを願っています。

リンク: https://www.c-sharpcorner.com/UploadFile/dacca2/json-serialization-using-newtonsoft-json-serialize/

#json 

What is GEEK

Buddha Community

Newtonsoft JSONシリアル化を使用したJSONシリアル化
宇野  和也

宇野 和也

1634201280

Newtonsoft JSONシリアル化を使用したJSONシリアル化

今日の通信システムでは、JSONが1つの非常に重要な役割を果たしており、JSONはXMLに取って代わっていると言えますが、XMLには独自の美しさがあり、JSONがXMLの代替になることは決してないことを願っています。ただし、状況によっては、人々はXMLに精通しており、現在JSONを使用しています。

クライアントアプリケーションからのAJAX呼び出しについて考えてみてください。昔は(それほど古くはなく、AJAXも新しい概念です)、人々はXMLを使用してWebサービスやWCFサービスなどのサービスベースのアプリケーションと通信していました。しかし、Web APIの導入により、人々はデータエンコーディング形式としてJSONを使い始めました。

かっこいいです。JSONは軽量で、XMLのようにオーバーヘッド帯域幅を使用する不要なデータはありません。Web APIには、戻り値をJSON形式でシリアル化する機能が組み込まれていますが、開発者がデータをJSON形式でシリアル化する必要がある状況が存在します(WebFormの背後にあるコードの別のサービスまたはページメソッド)。

これで、コアトピックであるJSON形式でデータをシリアル化する方法に到達しました。それを行うには多くの方法があります。.NETクラスライブラリには、JSONデータをシリアル化するための独自のクラスがあります。もう1つの優れたオプションは、サードパーティコンポーネントのJSONシリアル化ライブラリを使用することです。この記事では、NewtonsoftJSONシリアル化ライブラリを使用してJSONデータをシリアル化します。

最初に、NuGetパッケージマネージャーを使用してNewtonsoft JSONシリアライザーパッケージをダウンロードしてインストールすると、現在のソリューションに次のリファレンスが表示されます。

Newtonsoft JSON

 

NewtonsoftJSONシリアライザーを使用してクラスオブジェクトをシリアル化する


この例では、JsonConvertクラスを使用してクラスオブジェクトをJSON形式にシリアル化する方法を学習します。これがクライアントアプリケーションの実装です。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="callAJAX.aspx.cs" Inherits="clientProject.callAJAX" %>  
<!DOCTYPE html>  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head id="Head1" runat="server">  
    <script src="JQuery.js" type="text/javascript"></script>  
    <script>  
               $(document).ready(function () {  
    $('#btn').click(function () {  
        var name = $('#name').val();  
        jQuery.ajax({  
            url: 'callAJAX.aspx/GetData',  
            type: "POST",  
            dataType: "json",  
            data: "{'name':'" + name + "'}",  
            contentType: "application/json; charset=utf-8",  
            success: function (data) {  
                alert(JSON.stringify(data));  
            }  
        });  
    });  
});  
    </script>  
</head>  
<body>  
    <input type="text" name="name" id="name" />  
    <input type="button" name="btn1" id="btn" value="ClickMe" />  
</body>  
</html>  

ここで、WebFormの背後にあるコードにGetData()関数を実装します。アプリケーションにNewtonsoft.Json名前空間が含まれており、Jsonconverterクラスの使用が許可されていることに注意してください。これがコードの実装です。

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Web;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
using System.Web.Services;  
using Newtonsoft.Json;  
namespace clientProject  
{  
    public class person  
    {  
        public string name { get; set; }  
    }  
    public partial class callAJAX : System.Web.UI.Page  
    {  
        protected void Page_Load(object sender, EventArgs e)  
        {  
        }  
        [WebMethod()]  
        public static string GetData(string name)  
        {  
            person p = new person();  
            p.name = name;  
            return JsonConvert.SerializeObject(p);  
        }  
    }  
}  

以下は上記の例の出力です。データがJSON形式で提供されていることがわかります。

JSON形式
 

NewtonsoftJSONシリアライザーを使用してリストをシリアル化する


ここで注意すべき点は、Newtonsoft JSONシリアライザーパッケージを使用して、ほぼすべてのデータ型(ユーザー定義と事前定義の両方)をシリアル化できることです。この例では、個人クラスのリストをシリアル化します。次の例を見てください。 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="callAJAX.aspx.cs" Inherits="clientProject.callAJAX" %>  
<!DOCTYPE html>  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head id="Head1" runat="server">  
    <script src="JQuery.js" type="text/javascript"></script>  
    <script>  
               $(document).ready(function () {  
    jQuery.ajax({  
        url: 'callAJAX.aspx/GetData',  
        type: "POST",  
        dataType: "json",  
        contentType: "application/json; charset=utf-8",  
        success: function (data) {  
            alert(JSON.stringify(data));  
        }  
    });  
});  
    </script>  
</head>  
</html>  

これは、個人クラスのリストをシリアル化するための実装の背後にあるコードです。

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Web;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
using System.Web.Services;  
using Newtonsoft.Json;  
namespace clientProject  
{  
    public class person  
    {  
        public string name { get; set; }  
    }  
    public partial class callAJAX : System.Web.UI.Page  
    {  
        protected void Page_Load(object sender, EventArgs e)  
        {  
        }  
        [WebMethod()]  
        public static string GetData()  
        {  
            List<person> p = new List<person>();  
            person p1 = new person();  
            p1.name = "Sourav";  
            person p2 = new person();  
            p2.name = "Ajay";  
            p.Add(p1);  
            p.Add(p2);  
            return JsonConvert.SerializeObject(p);  
        }  
    }  
}  

これがこの例の出力であり、リスト形式ではなくJSON形式でデータを取得しています。

JSON形式のデータ

結論

この記事では、NewtonsoftJSONシリアライザーを使用してデータをJSON形式にシリアル化する方法を学びました。概念を理解し、次のアプリケーションのJSONシリアル化シナリオでこのライブラリを使用することを願っています。

リンク: https://www.c-sharpcorner.com/UploadFile/dacca2/json-serialization-using-newtonsoft-json-serialize/

#json 

Newtonsoft.Json.JsonConvert In C#

Introduction

The Newtonsoft.Json namespace provides classes that are used to implement the core services of the framework.

It converts an object to and from JSON.

To demonstrate, we have taken an instance of the customer and the orders placed.

Let’s get started…

Step 1

Add two classes:

public class MyJson  
{  
   public int customer_id { get; set; }  
   public string customer_name{ get; set; }  
   public Order orders{ get; set; }  
}  
public class Order  
{  
   public string[] ids = new string[] {"1001","1005"};  
   //public string[] ids = new string[] { }; to send an empty array  
} 

#json #jsonconvert #programming-c #csharp

Rusty  Bernier

Rusty Bernier

1597506360

The .NET Stacks #11: Newtonsoft, async void, more with Jeremy Likness, more!

If you scan NuGet statistics from time to time (what, this isn’t how you spend your Sunday evenings?), you’ll see Newtonsoft.Json, the popular JSON serializer/deserializer, still takes the #1 spot. It’s been downloaded almost 52.2 million times in the last six weeks. That’s almost five times more than Serilog, the #2 finisher.

#[object object] #.net

Deion  Hilpert

Deion Hilpert

1595350500

.NET Core JSON Serialization Changes - Newtonsoft vs System.Text.Json

Microsoft changed the default JSON serialization/deserialization engine in NET Core 3.x. Learn how to avoid a potential bug as you upgrade your application.

#.net #.net core #asp.net #programming