<?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/category/c-zh/c-%e5%ba%93/newtonsoft-json/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.foxdevelop.com</link>
	<description>独立软件开发工作室</description>
	<lastBuildDate>Tue, 04 Aug 2026 01:26:01 +0000</lastBuildDate>
	<language>zh-Hans</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/2026/08/04/%e6%95%b0%e7%bb%84%e5%8f%8d%e5%ba%8f%e5%88%97%e5%8c%96/</link>
					<comments>https://www.foxdevelop.com/zh/2026/08/04/%e6%95%b0%e7%bb%84%e5%8f%8d%e5%ba%8f%e5%88%97%e5%8c%96/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Tue, 04 Aug 2026 01:19:42 +0000</pubDate>
				<category><![CDATA[Newtonsoft.Json]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=7414</guid>

					<description><![CDATA[例子 说明 ① List 序列化为JSON数组字符串 ② J ...]]></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-cs"><span class="hljs-keyword">string</span> jsonString = <span class="hljs-string">@"""{""webinfos"":&#91;{""webname"":""FoxDevelop"",""website"":""foxdevelop.com"",""age"":4,
""students"":&#91;{""name"":""张三""},{""name"":""李四""}]},{""webname"":""FoxDevelop1"",""website"":""foxdevelop.com1"",
""age"":6,""students"":&#91;{""name"":""王五""},{""name"":""猪八戒""}]}]}"""</span>;

StringReader sr = <span class="hljs-keyword">new</span> StringReader(jsonString);
JsonReader jr = <span class="hljs-keyword">new</span> JsonReader(sr);
List&lt;WebInfo&gt; infoList = <span class="hljs-keyword">new</span> JsonSerializer().Deserialize(jr, <span class="hljs-keyword">typeof</span>(List&lt;WebInfo&gt;)) <span class="hljs-keyword">as</span> List&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">"Tom"</span>}, <span class="hljs-keyword">new</span> Person{name=<span class="hljs-string">"Jim"</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">"Tom"</span>}, <span class="hljs-keyword">new</span> Person{name=<span class="hljs-string">"Jim"</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">"Tom"</span>}, <span class="hljs-keyword">new</span> Person{name=<span class="hljs-string">"Jim"</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>Tom<span class="hljs-string">"},{"</span>name<span class="hljs-string">":"</span>Jim<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>Tom<span class="hljs-string">"},{"</span>name<span class="hljs-string">":"</span>Jim<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>Tom<span class="hljs-string">"},{"</span>name<span class="hljs-string">":"</span>Jim<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/2026/08/04/%e6%95%b0%e7%bb%84%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/2026/08/04/%e5%8f%8d%e5%ba%8f%e5%88%97%e5%8c%96/</link>
					<comments>https://www.foxdevelop.com/zh/2026/08/04/%e5%8f%8d%e5%ba%8f%e5%88%97%e5%8c%96/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Tue, 04 Aug 2026 01:15:23 +0000</pubDate>
				<category><![CDATA[Newtonsoft.Json]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=7410</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">方式1（底层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">方式2（简洁泛型写法，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/2026/08/04/%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/2026/08/03/%e4%bb%8b%e7%bb%8d-6/</link>
					<comments>https://www.foxdevelop.com/zh/2026/08/03/%e4%bb%8b%e7%bb%8d-6/#respond</comments>
		
		<dc:creator><![CDATA[jack]]></dc:creator>
		<pubDate>Mon, 03 Aug 2026 10:01:48 +0000</pubDate>
				<category><![CDATA[Newtonsoft.Json]]></category>
		<guid isPermaLink="false">https://www.foxdevelop.com/?p=7374</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/2026/08/03/%e4%bb%8b%e7%bb%8d-6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
