<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Newtonsoft.Json &#8211; FoxDevelop</title>
	<atom:link href="https://www.foxdevelop.com/zh-tw/category/c-zh-tw/c-%e7%a8%8b%e5%bc%8f%e5%ba%ab/newtonsoft-json-zh-tw/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.foxdevelop.com</link>
	<description>獨立軟體開發工作室</description>
	<lastBuildDate>Fri, 14 Aug 2026 02:14:16 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.4</generator>

<image>
	<url>https://www.foxdevelop.com/wp-content/uploads/2026/05/fox-svgrepo-com-1.png</url>
	<title>Newtonsoft.Json &#8211; FoxDevelop</title>
	<link>https://www.foxdevelop.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>陣列的序列化與反序列化</title>
		<link>https://www.foxdevelop.com/zh-tw/2026/08/14/%e9%99%a3%e5%88%97%e7%9a%84%e5%ba%8f%e5%88%97%e5%8c%96%e8%88%87%e5%8f%8d%e5%ba%8f%e5%88%97%e5%8c%96/</link>
					<comments>https://www.foxdevelop.com/zh-tw/2026/08/14/%e9%99%a3%e5%88%97%e7%9a%84%e5%ba%8f%e5%88%97%e5%8c%96%e8%88%87%e5%8f%8d%e5%ba%8f%e5%88%97%e5%8c%96/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 02:14:16 +0000</pubDate>
				<category><![CDATA[Newtonsoft.Json]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=8397</guid>

					<description><![CDATA[範例 說明 ① List 序列化為 JSON 陣列字串 ②  ...]]></description>
										<content:encoded><![CDATA[<!-- 繁體中文 -->

<ul class="wp-block-list">

<li>如同上一小節的做法</li>


<li>我們可以把 JSON 字串轉換成陣列</li>


<li>只需要把原本的類別名稱替換成 <code>List&lt;類別名稱></code></li>

</ul>



<h4 class="wp-block-heading">範例</h4>


<pre class="wp-block-code"><span><code class="hljs language-php">string jsonString = @<span class="hljs-string">""</span><span class="hljs-string">"{"</span><span class="hljs-string">"webinfos"</span><span class="hljs-string">":&#91;{"</span><span class="hljs-string">"webname"</span><span class="hljs-string">":"</span><span class="hljs-string">"FoxDevelop"</span><span class="hljs-string">","</span><span class="hljs-string">"website"</span><span class="hljs-string">":"</span><span class="hljs-string">"foxdevelop.com"</span><span class="hljs-string">","</span><span class="hljs-string">"age"</span><span class="hljs-string">":4,
"</span><span class="hljs-string">"students"</span><span class="hljs-string">":&#91;{"</span><span class="hljs-string">"name"</span><span class="hljs-string">":"</span><span class="hljs-string">"志偉"</span><span class="hljs-string">"},{"</span><span class="hljs-string">"name"</span><span class="hljs-string">":"</span><span class="hljs-string">"建宏"</span><span class="hljs-string">"}]},{"</span><span class="hljs-string">"webname"</span><span class="hljs-string">":"</span><span class="hljs-string">"FoxDevelop1"</span><span class="hljs-string">","</span><span class="hljs-string">"website"</span><span class="hljs-string">":"</span><span class="hljs-string">"foxdevelop.com1"</span><span class="hljs-string">",
"</span><span class="hljs-string">"age"</span><span class="hljs-string">":6,"</span><span class="hljs-string">"students"</span><span class="hljs-string">":&#91;{"</span><span class="hljs-string">"name"</span><span class="hljs-string">":"</span><span class="hljs-string">"俊傑"</span><span class="hljs-string">"},{"</span><span class="hljs-string">"name"</span><span class="hljs-string">":"</span><span class="hljs-string">"明輝"</span><span class="hljs-string">"}]}]}"</span><span class="hljs-string">""</span>;

StringReader sr = <span class="hljs-keyword">new</span> StringReader(jsonString);
JsonReader jr = <span class="hljs-keyword">new</span> JsonReader(sr);
<span class="hljs-keyword">List</span>&lt;WebInfo&gt; infoList = <span class="hljs-keyword">new</span> JsonSerializer().Deserialize(jr, typeof(<span class="hljs-keyword">List</span>&lt;WebInfo&gt;)) <span class="hljs-keyword">as</span> <span class="hljs-keyword">List</span>&lt;WebInfo&gt;;</code></span></pre>


<h4 class="wp-block-heading">說明</h4>



<p class="wp-block-paragraph"></p>



<ol class="wp-block-list">

<li><strong>程式結構、變數名、跳脫雙引號、換行全部維持不變，只替換指定文字</strong></li>


<li>後續反序列化的程式邏輯不需要做任何修改</li>

</ol>



<h4 class="wp-block-heading">① List 序列化為 JSON 陣列字串</h4>


<pre class="wp-block-code"><span><code class="hljs language-php"><span class="hljs-comment">// 建立 List 集合</span>
<span class="hljs-keyword">List</span>&lt;WebInfo&gt; webList = <span class="hljs-keyword">new</span> <span class="hljs-keyword">List</span>&lt;WebInfo&gt;()
{
    <span class="hljs-keyword">new</span> WebInfo()
    {
        age = <span class="hljs-number">4</span>,
        webname = <span class="hljs-string">"FoxDevelop"</span>,
        website = <span class="hljs-string">"foxdevelop.com"</span>,
        students = <span class="hljs-keyword">new</span> Person&#91;] { <span class="hljs-keyword">new</span> Person{name=<span class="hljs-string">"志偉"</span>}, <span class="hljs-keyword">new</span> Person{name=<span class="hljs-string">"建宏"</span>} }
    },
    <span class="hljs-keyword">new</span> WebInfo()
    {
        age = <span class="hljs-number">4</span>,
        webname = <span class="hljs-string">"FoxDevelop1"</span>,
        website = <span class="hljs-string">"foxdevelop.com"</span>,
        students = <span class="hljs-keyword">new</span> Person&#91;] { <span class="hljs-keyword">new</span> Person{name=<span class="hljs-string">"俊傑"</span>}, <span class="hljs-keyword">new</span> Person{name=<span class="hljs-string">"明輝"</span>} }
    },
    <span class="hljs-keyword">new</span> WebInfo()
    {
        age = <span class="hljs-number">4</span>,
        webname = <span class="hljs-string">"FoxDevelop2"</span>,
        website = <span class="hljs-string">"foxdevelop.com"</span>,
        students = <span class="hljs-keyword">new</span> Person&#91;] { <span class="hljs-keyword">new</span> Person{name=<span class="hljs-string">"家豪"</span>}, <span class="hljs-keyword">new</span> Person{name=<span class="hljs-string">"宗翰"</span>} }
    }
};

<span class="hljs-comment">// 序列化：List物件 → JSON陣列字串</span>
StringWriter sw = <span class="hljs-keyword">new</span> StringWriter();
JsonWriter writer = <span class="hljs-keyword">new</span> JsonWriter(sw);
<span class="hljs-keyword">new</span> JsonSerializer().Serialize(writer, webList);
string jsonArrStr = sw.GetStringBuilder().ToString();</code></span></pre>


<h4 class="wp-block-heading">② JSON 陣列字串反序列化為 List</h4>


<pre class="wp-block-code"><span><code class="hljs language-php">string jsonString = @<span class="hljs-string">"&#91;{"</span>webname<span class="hljs-string">":"</span>FoxDevelop<span class="hljs-string">","</span>website<span class="hljs-string">":"</span>foxdevelop.com<span class="hljs-string">","</span>age<span class="hljs-string">":4,
"</span>students<span class="hljs-string">":&#91;{"</span>name<span class="hljs-string">":"</span>志偉<span class="hljs-string">"},{"</span>name<span class="hljs-string">":"</span>建宏<span class="hljs-string">"}]},{"</span>webname<span class="hljs-string">":"</span>FoxDevelop1<span class="hljs-string">","</span>website<span class="hljs-string">":"</span>foxdevelop.com<span class="hljs-string">",
"</span>age<span class="hljs-string">":4,"</span>students<span class="hljs-string">":&#91;{"</span>name<span class="hljs-string">":"</span>俊傑<span class="hljs-string">"},{"</span>name<span class="hljs-string">":"</span>明輝<span class="hljs-string">"}]},{"</span>webname<span class="hljs-string">":"</span>FoxDevelop2<span class="hljs-string">","</span>website<span class="hljs-string">":"</span>foxdevelop.com<span class="hljs-string">",
"</span>age<span class="hljs-string">":4,"</span>students<span class="hljs-string">":&#91;{"</span>name<span class="hljs-string">":"</span>家豪<span class="hljs-string">"},{"</span>name<span class="hljs-string">":"</span>宗翰<span class="hljs-string">"}]}]"</span>;

StringReader sr = <span class="hljs-keyword">new</span> StringReader(jsonString);
JsonReader jr = <span class="hljs-keyword">new</span> JsonTextReader(sr);
<span class="hljs-keyword">List</span>&lt;WebInfo&gt; dataList = <span class="hljs-keyword">new</span> JsonSerializer().Deserialize(jr, typeof(<span class="hljs-keyword">List</span>&lt;WebInfo&gt;)) <span class="hljs-keyword">as</span> <span class="hljs-keyword">List</span>&lt;WebInfo&gt;;</code></span></pre>


<p class="wp-block-paragraph">陣列的序列化與反序列化</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh-tw/2026/08/14/%e9%99%a3%e5%88%97%e7%9a%84%e5%ba%8f%e5%88%97%e5%8c%96%e8%88%87%e5%8f%8d%e5%ba%8f%e5%88%97%e5%8c%96/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>序列化與反序列化</title>
		<link>https://www.foxdevelop.com/zh-tw/2026/08/14/%e5%ba%8f%e5%88%97%e5%8c%96%e8%88%87%e5%8f%8d%e5%ba%8f%e5%88%97%e5%8c%96/</link>
					<comments>https://www.foxdevelop.com/zh-tw/2026/08/14/%e5%ba%8f%e5%88%97%e5%8c%96%e8%88%87%e5%8f%8d%e5%ba%8f%e5%88%97%e5%8c%96/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 02:08:55 +0000</pubDate>
				<category><![CDATA[Newtonsoft.Json]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=8381</guid>

					<description><![CDATA[回顧上一小節的序列化，作用是把實體物件轉換成 JSON 字串 ...]]></description>
										<content:encoded><![CDATA[<!-- 繁體中文 -->

<p class="wp-block-paragraph">回顧上一小節的序列化，作用是把實體物件轉換成 JSON 字串。</p>



<h4 class="wp-block-heading">序列化</h4>


<pre class="wp-block-code"><span><code class="hljs language-javascript">WebInfo webInfo = <span class="hljs-keyword">new</span> WebInfo();
webInfo.age = <span class="hljs-number">4</span>;
webInfo.webname = <span class="hljs-string">"FoxDevelop"</span>;
webInfo.website = <span class="hljs-string">"foxdevelop.com"</span>;
webInfo.students = <span class="hljs-keyword">new</span> Person&#91;] { <span class="hljs-keyword">new</span> Person { name = <span class="hljs-string">"Tom"</span> }, <span class="hljs-keyword">new</span> Person { name = <span class="hljs-string">"Jim"</span> } };
<span class="hljs-comment">// 將 webinfo 物件轉換為 JSON 字串</span>
StringWriter sw = <span class="hljs-keyword">new</span> StringWriter();
JsonWriter writer = <span class="hljs-keyword">new</span> JsonWriter(sw);
<span class="hljs-keyword">new</span> JsonSerializer().Serialize(writer, webInfo);
string json = sw.GetStringBuilder().ToString();</code></span></pre>


<h5 class="wp-block-heading">輸出對應的 JSON 結果</h5>


<pre class="wp-block-code"><span><code class="hljs language-json">{<span class="hljs-attr">"webname"</span>:<span class="hljs-string">"FoxDevelop"</span>,<span class="hljs-attr">"website"</span>:<span class="hljs-string">"foxdevelop.com"</span>,<span class="hljs-attr">"age"</span>:<span class="hljs-number">4</span>,<span class="hljs-attr">"students"</span>:&#91;{<span class="hljs-attr">"name"</span>:<span class="hljs-string">"張三"</span>},{<span class="hljs-attr">"name"</span>:<span class="hljs-string">"李四"</span>}]}</code></span></pre>


<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">反序列化</h3>



<p class="wp-block-paragraph">把 JSON 字串還原為實體物件</p>



<p class="wp-block-paragraph">寫法一（底層 Reader 實作）</p>


<pre class="wp-block-code"><span><code class="hljs language-javascript">WebInfo model = <span class="hljs-keyword">new</span> JsonSerializer()
    .Deserialize(<span class="hljs-keyword">new</span> JsonTextReader(<span class="hljs-keyword">new</span> StringReader(json)), <span class="hljs-keyword">typeof</span>(WebInfo)) <span class="hljs-keyword">as</span> WebInfo;</code></span></pre>


<p class="wp-block-paragraph">寫法二（簡潔泛型，Newtonsoft.Json）</p>


<pre class="wp-block-code"><span><code class="hljs language-xml">WebInfo model = JavaScriptConvert.DeserializeObject<span class="hljs-tag">&lt;<span class="hljs-name">WebInfo</span>&gt;</span>(json);</code></span></pre>


<p class="wp-block-paragraph">new JsonSerializer().Deserialize(new JsonTextReader(new StringReader(jsonString)), typeof(類別名稱) as 類別名稱</p>



<p class="wp-block-paragraph">透過以上方式，就可以把 JSON 物件反序列化成實體物件。</p>



<p class="wp-block-paragraph">也可以這樣寫</p>



<p class="wp-block-paragraph">JavaScriptConvert.DeserializeObject&lt;NodeInfo&gt;(jsonText)</p>



<p class="wp-block-paragraph">序列化與反序列化</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh-tw/2026/08/14/%e5%ba%8f%e5%88%97%e5%8c%96%e8%88%87%e5%8f%8d%e5%ba%8f%e5%88%97%e5%8c%96/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>介紹</title>
		<link>https://www.foxdevelop.com/zh-tw/2026/08/14/%e4%bb%8b%e7%b4%b9-4/</link>
					<comments>https://www.foxdevelop.com/zh-tw/2026/08/14/%e4%bb%8b%e7%b4%b9-4/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 01:57:56 +0000</pubDate>
				<category><![CDATA[Newtonsoft.Json]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=8365</guid>

					<description><![CDATA[1. Newtonsoft.Json 介紹 Newtonso ...]]></description>
										<content:encoded><![CDATA[
<h4 class="wp-block-heading">1. Newtonsoft.Json 介紹</h4>



<p class="wp-block-paragraph">Newtonsoft.Json（一般稱 Json.NET）是 <strong>.NET 生態的開源 JSON 序列化與反序列化元件</strong></p>



<ul class="wp-block-list">
<li>2006 釋出第一版 Json.NET 1.0.1，目前主流版本已更新至 10+</li>



<li>最初相容 .NET 2.0，幾乎支援全部 .NET 框架（Framework/.NET Core/.NET 5+）</li>



<li>組件檔：<code>Newtonsoft.Json.dll</code>，透過 NuGet 安裝使用</li>



<li>早期原始碼託管在 CodePlex，現已移轉至 GitHub，大量企業專案都在使用</li>
</ul>



<h4 class="wp-block-heading">2. JSON 是什麼</h4>



<p class="wp-block-paragraph"><strong>JSON（JavaScript Object Notation，JS物件標記）</strong></p>



<ul class="wp-block-list">
<li>輕量級、<strong>與程式語言無關</strong>的資料交換文字格式，並非 JavaScript 專用</li>



<li>核心結構：鍵值對 <code>key:value</code>；支援物件 <code>{}</code>、陣列 <code>[]</code> 巢狀寫法</li>
</ul>


<pre class="wp-block-code"><span><code class="hljs language-cs">{<span class="hljs-string">"webname"</span>:<span class="hljs-string">"FoxDevelop"</span>,<span class="hljs-string">"website"</span>:<span class="hljs-string">"foxdevelop.com"</span>,<span class="hljs-string">"age"</span>:<span class="hljs-number">4</span>,<span class="hljs-string">"students"</span>:&#91;{<span class="hljs-string">"name"</span>:<span class="hljs-string">"tom"</span>},{<span class="hljs-string">"name"</span>:<span class="hljs-string">"bill"</span>}]}</code></span></pre>


<h4 class="wp-block-heading">二、實體類別定義（對應JSON結構）</h4>



<h5 class="wp-block-heading">Person.cs（學生物件）</h5>


<pre class="wp-block-code"><span><code class="hljs language-cs"><span class="hljs-keyword">namespace</span> <span class="hljs-title">NewtonsoftDemo</span>
{
    <span class="hljs-keyword">public</span> <span class="hljs-keyword">class</span> <span class="hljs-title">Person</span>
    {
        <span class="hljs-keyword">public</span> <span class="hljs-keyword">string</span> name { <span class="hljs-keyword">set</span>; <span class="hljs-keyword">get</span>; }
    }
}</code></span></pre>


<h5 class="wp-block-heading">WebInfo.cs（外層主物件）</h5>


<pre class="wp-block-code"><span><code class="hljs language-cs"><span class="hljs-keyword">namespace</span> <span class="hljs-title">NewtonsoftDemo</span>
{
    <span class="hljs-keyword">public</span> <span class="hljs-keyword">class</span> <span class="hljs-title">WebInfo</span>
    {
        <span class="hljs-keyword">public</span> <span class="hljs-keyword">string</span> webname { <span class="hljs-keyword">set</span>; <span class="hljs-keyword">get</span>; }
        <span class="hljs-keyword">public</span> <span class="hljs-keyword">string</span> website { <span class="hljs-keyword">set</span>; <span class="hljs-keyword">get</span>; }
        <span class="hljs-keyword">public</span> <span class="hljs-keyword">int</span> age { <span class="hljs-keyword">set</span>; <span class="hljs-keyword">get</span>; }
        <span class="hljs-keyword">public</span> Person&#91;] students { <span class="hljs-keyword">set</span>; <span class="hljs-keyword">get</span>; }
    }
}</code></span></pre>


<h4 class="wp-block-heading">範例‑物件序列化為JSON</h4>


<pre class="wp-block-code"><span><code class="hljs language-cs"><span class="hljs-function"><span class="hljs-keyword">protected</span> <span class="hljs-keyword">void</span> <span class="hljs-title">Page_Load</span>(<span class="hljs-params"><span class="hljs-keyword">object</span> sender, EventArgs e</span>)</span>
{
    <span class="hljs-comment">// 1. 建立實體物件並設定屬性</span>
    WebInfo webInfo = <span class="hljs-keyword">new</span> WebInfo();
    webInfo.age = <span class="hljs-number">4</span>;
    webInfo.webname = <span class="hljs-string">"FoxDevelop"</span>;
    webInfo.website = <span class="hljs-string">"foxdevelop.com"</span>;
    webInfo.students = <span class="hljs-keyword">new</span> Person&#91;] 
    { 
        <span class="hljs-keyword">new</span> Person { name = <span class="hljs-string">"TOM"</span> },
        <span class="hljs-keyword">new</span> Person { name = <span class="hljs-string">"JACK"</span> } 
    };

    <span class="hljs-comment">// 2. Newtonsoft.Json 底層寫法：使用JsonWriter做序列化</span>
    StringWriter sw = <span class="hljs-keyword">new</span> StringWriter();
    JsonWriter writer = <span class="hljs-keyword">new</span> JsonWriter(sw);
    <span class="hljs-keyword">new</span> JsonSerializer().Serialize(writer, webInfo);
    <span class="hljs-keyword">string</span> json = sw.GetStringBuilder().ToString();
}</code></span></pre>


<h4 class="wp-block-heading">日常開發的簡化寫法</h4>



<p class="wp-block-paragraph">Newtonsoft.Json 提供靜態工具方法，不用手動建立 <code>JsonWriter</code>：</p>


<pre class="wp-block-code"><span><code class="hljs language-cs"><span class="hljs-comment">// 一行完成序列化，開發最常使用</span>
<span class="hljs-keyword">string</span> json = JsonConvert.SerializeObject(webInfo);</code></span></pre>


<h4 class="wp-block-heading">輸出JSON結果</h4>


<pre class="wp-block-code"><span><code class="hljs language-cs">{
  <span class="hljs-string">"webname"</span>: <span class="hljs-string">"FoxDevelop"</span>,
  <span class="hljs-string">"website"</span>: <span class="hljs-string">"foxdevelop.com"</span>,
  <span class="hljs-string">"age"</span>: <span class="hljs-string">"4"</span>,
  <span class="hljs-string">"students"</span>: &#91;
    {<span class="hljs-string">"name"</span>:<span class="hljs-string">"TOM"</span>},
    {<span class="hljs-string">"name"</span>:<span class="hljs-string">"JACK"</span>}
  ]
}</code></span></pre>


<h4 class="wp-block-heading">其他</h4>



<ul class="wp-block-list">
<li><strong>System.Text.Json</strong>：.NET Core 3.0 之後微軟內建的JSON函式庫；舊版 .NET Framework 專案大多還是使用 Newtonsoft.Json</li>



<li>功能：支援屬性別名、欄位忽略、日期格式化、迴圈參考處理等高級功能</li>
</ul>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph">介紹</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.foxdevelop.com/zh-tw/2026/08/14/%e4%bb%8b%e7%b4%b9-4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
