Newtonsoft.Json设置类的属性不序列化

参考页面:

http://www.yuanjiaocheng.net/webapi/parameter-binding.html

http://www.yuanjiaocheng.net/webapi/action-method-returntype.html

http://www.yuanjiaocheng.net/webapi/web-api-reqresq-format.html

http://www.yuanjiaocheng.net/webapi/media-formatter.html

http://www.yuanjiaocheng.net/webapi/webapi-filters.html

1,现象:网站应用程序池停止运行,系统日志为:

  1)

错误应用程序名称: w3wp.exe,版本: 7.5.7601.17514,时间戳: 0x4ce7a5f8
错误模块名称: unknown,版本: 0.0.0.0,时间戳: 0x00000000
异常代码: 0xc00000fd
错误偏移量: 0x36773800
错误进程 ID: 0x1b0c
错误应用程序启动时间: 0x01d2626116b1ea92
错误应用程序路径: C:\Windows\SysWOW64\inetsrv\w3wp.exe
错误模块路径: unknown
报告 ID: 54a68ba9-ce54-11e6-aeff-1866dae93909

2)

问题签名:
P1: w3wp.exe
P2: 7.5.7601.17514
P3: 4ce7a5f8
P4: *****
P5: 1.0.0.0
P6: 5865f074
P7: 72a
P8: 0
P9: System.StackOverflowException
P10:

2,JsonConvert.SerializeObject(o, Formatting.Indented);这的时候报错

  o是一个对象。

  最终报错位置为

public Decimal budget
{
set { _budget = value; }
get { return _budget; }
}

未处理System.StackOverflowException Message: “System.StackOverflowException”类型的未经处理的异常在 *** 中发生

3,错误分析:Newtonsoft方法直接报错,无法调试,难道是Newtonsoft无法序列化Decimal类型的属性?

4,迂回解决方法:设置budget不可被序列化。

5,跪求真正的可以序列化Decimal类型的属性的方法

时间: 2024-10-02 07:07:28

Newtonsoft.Json设置类的属性不序列化的相关文章

C# Newtonsoft.Json JObject移除属性,在序列化时忽略

原文 C# Newtonsoft.Json JObject移除属性,在序列化时忽略 一.针对 单个 对象移除属性,序列化时忽略处理 JObject实例的 Remove() 方法,可以在 指定序列化时移除属性和值 示例如下 : [csharp] view plain copy //json 序列化 JObject obj1 = JObject.FromObject(new { id = 1, name = "张三", age = 20 }); Console.WriteLine(obj1

C#反射技术的简单操作(读取和设置类的属性)

public class A { public int Property1 { get; set; } } static void Main(){ A aa = new A(); Type type = aa.GetType();//获取类型 System.Reflection.PropertyInfo propertyInfo = type.GetProperty("Property1"); propertyInfo.SetValue(aa, 5, null);//给对应属性赋值 i

C#反射读取和设置类的属性

C#反射技术的简单操作(读取和设置类的属性) http://www.cnblogs.com/william-lin/archive/2013/06/05/3118233.html 泛型方法通过反射创建类的实例 /// <summary> /// 获取web服务实例 /// </summary> /// <typeparam name="T">服务代理类</typeparam> /// <returns></returns

ASP.NET2.0 Newtonsoft.Json 操作类分享

JSON 是现在比较流行的数据交互格式,NET3.0+有自带类处理JSON,2.0的话需要借助Newtonsoft.Json来完成,不然自己写的话,很麻烦. 网上搜索下载 Newtonsoft.Json.Net20.dll (没有加群找群主拿),添加引用到项目当中. /*添加引用*/ using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Newtonsoft.Json.Converters; /* 序列化,返回JSON格式的字符串 */

C#反射技术的简单操作(读取和设置类的属性、属性值)

public class A { public int Property1 { get; set; } } static void Main(){ A aa = new A(); Type type = aa.GetType();//获取类型 System.Reflection.PropertyInfo propertyInfo = type.GetProperty("Property1"); propertyInfo.SetValue(aa, 5, null);//给对应属性赋值 i

C#.NET序列化XML、JSON、二进制微软自带DLL与newtonsoft(json.net)

序列化是将对象转换成另一种格式(XML.json.二进制byte[]) JSON序列化 .NET中有三种常用的JSON序列化的类,分别是: Newtonsoft.Json.JsonConvert类(推荐) Newtonsoft.Json.JsonConvert类是非微软提供的一个JSON序列化和反序列的开源免费的类库(下载网址是:http://www.codeplex.com/json/),它提供了更灵活的序列化和反序列化控制,并且如果你的开发环境使用的是.NET Framework3.5及以后

Newtonsoft.Json输出Json时动态忽略属性

一,前言 最近做项目采用Json形式和其他客户端交互,借助于Newtonsoft.Json . 由于业务场景不同,输出的Json内容也不同.要想忽略的属性,可以借助Newtonsoft.Json的特性,在实体前面添加特性[JsonIgnore]即可,但有时候会根据业务需求,在不同的地方输出同一个实体中不同的属性,所以添加特性的方式显然不能满足要求.例如user表,在A场景下需要password:B场景下不需要. 二,解决办法 可以重写Newtonsoft.Json的DefaultContract

再谈Newtonsoft.Json高级用法

上一篇Newtonsoft.Json高级用法发布以后收到挺多回复的,本篇将分享几点挺有用的知识点和最近项目中用到的一个新点进行说明,做为对上篇文章的补充. 阅读目录 动态改变属性序列化名称 枚举值序列化问题 全局设置 总结 回到顶部 动态改变属性序列化名称 "动态改变属性序列化名称"顾名思义:在不同场景下实体字段序列化后字段名称不同,比如有下面实体A,正常序列化后json为{"Id":"123"} public class A { public

Newtonsoft.Json 方法使用()

JSON.NET1.3.0,旧版本的json.net,使用Newtonsoft.Json.JavaScriptConvert.DeserializeObject类进行转换 如果是新版本的json.net,如JSON.NET 4.0,已经转移到Newtonsoft.Json.JsonConvert类下面,Newtonsoft.Json.JsonConvert.DeserializeObject. 所以如果你找不到JavaScriptConvert类,那是你的版本的问题. SetCarrier sc