首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用于JSON序列化的条件ScriptIgnore

用于JSON序列化的条件ScriptIgnore
EN

Stack Overflow用户
提问于 2012-04-18 15:07:12
回答 3查看 4.6K关注 0票数 3

有没有办法有条件地从JSON序列化中排除项目?我在一个带有WebAPI的.NET4应用程序中使用C#。我的类中已经有了[DataMember][ScriptIgnore],一切都运行得很好。我想做的不是在运行时根据属性值包含某些属性

例如,我可能只想在以下情况下序列化List<Foo> myFoo

myFoo != null && myFoo.Count > 0

JSON在客户机上被转换回我自己的JS对象,所有属性都已经像myFoo: []一样实例化了。没有必要将这些以JSON格式发送到客户端,因为它基本上不会对对象产生任何影响,而只是在客户端发送更多数据和使用更多处理。这是一个非常依赖JS的HTML5移动站点,我正在尽可能地减少数据和处理。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-24 15:45:34

我找到了Json.net,它允许我在运行时进行条件序列化。

票数 0
EN

Stack Overflow用户

发布于 2012-10-18 16:32:36

感谢OP回答你的问题,但如果我遇到同样的情况,更多的信息将是很好的。这让人精疲力竭,但我最终找到了方法。没有太多关于它的东西,但according to a lowly page on Json.net's archive下面是它的工作原理:

代码语言:javascript
运行
AI代码解释
复制
public class Tricorn
{
   public string RocketFuel { get; set; }

   public bool ShouldSerializeRocketFuel()
   {
      return !string.IsNullOrEmpty(this.RocketFuel.Length);
   }
}

关键是创建一个在属性名中带有谓词"ShouldSerialze“的方法。返回值指示是否应该序列化它,其余的由Json.net处理。希望这对任何人都有帮助!

票数 7
EN

Stack Overflow用户

发布于 2012-04-20 14:06:57

在这里,使用getter可能是最好的选择:

代码语言:javascript
运行
AI代码解释
复制
[ScriptIgnore]
private List<Foo> myFoo;

public List<Foo> MyFoo
{
   get
   {
      if (this.myFoo != null && this.myFoo.Count > 0)
      {
         return this.myFoo;
      }
      else
      {
         return null;
      }
   }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10212302

复制
相关文章
Python异常处理traceback和exc_info
开发过程中一般都会使用traceback将捕获到的异常打印出来。 import traceback def fake_exception(): 1 / 0 def catch_exception(): try: fake_exception() except: traceback.print_exc() catch_exception() 结果 Traceback (most recent call last): File ".\test.p
Ewdager
2020/07/14
6490
Python 日志打印之logging.config.dictConfig使用总结
dictConfig函数位于logging.config模块,该函数通过字典参数config对logging进行配置。3.2版本新增的函数
授客
2021/01/13
4.1K2
11 | Tornado源码分析:Gen 对象(下)
我们先看一下源码(我已经进行过整理的源码,主要方面大家去理解里面的实现逻辑,若想看完整的源码建议大家可以自行查看本机安装的 tornado 版本中的源代码),在源码中我做了一些批注,这样有利于大家更好的去结合代码来深入了解 其内部的运作。
python编程从入门到实践
2020/09/09
4260
Openstack之log详解
openstack中的日志由oslo_log统一实现,延续了openstack一贯的封装大法,以十分友好的方式将接口提供给各个组件使用。
tunsuy
2022/10/27
4940
[源码解析] PyTorch 流水线并行实现 (6)--并行计算
前几篇文章我们介绍了 PyTorch 流水线并行的基本知识,自动平衡机制和切分数据,本文我们结合论文内容来看看如何实现流水线。
罗西的思考
2021/10/13
1.5K0
12 | Tornado源码分析:BaseIOStream 对象(上)
hello 大家好 通过前几期我们已经聊了 Tornado 中协程的创建、运行,本期我们开始聊聊 tornado 中 网络读写数据处理相关的内容,这部分还是比较复杂的我们打算拆分成几期来聊。
python编程从入门到实践
2020/09/16
4630
PyTorch 源码解读之流水线并行
如图所示为谷歌提出的流水线并行算法,名为 GPipe,论文位于 https://arxiv.org/abs/1811.06965。首先将模型切分为连续的多个 stage,每个 stage 占据一台设备,从而利用多台设备容纳下单设备无法容纳的模型。其次,GPipe 将 mini-batch 切分为多个 micro-batch,每次只处理一个 micro-batch。在处理完当个 micro-batch 后,该 micro-batch 的结果将会被发送给下一台设备,同时开始处理下一个 micro-batch。
OpenMMLab 官方账号
2023/09/28
8320
PyTorch 源码解读之流水线并行
uwsgi日志中文问题
开发项目,使用uwsgi,遇到个头痛的问题,如果指定了uwsgi打印日志,当日志中写入中文时,直接会导致报错
fanspring
2019/06/27
1.7K0
Python常用库 - logging日志库
logging 使用非常简单,使用 basicConfig() 方法就能满足基本的使用需要;如果方法没有传入参数,会根据默认的配置创建Logger 对象,默认的日志级别被设置为 WARNING,该函数可选的参数如下表所示。
小菠萝测试笔记
2020/06/09
8540
如何扩展python的logging组件支持json日志输出
这两天在优化公司一个python的项目,顺便研究了一下如何将python日志转成json格式,原来在Java的项目中搞过类似的事情,知道日志转成json之后有很多便利的之处,最常见的就是可以直接对接各种日志分析系统,如开源的ELK,将数据导入之后就能快速的进行查询和分析,方便做各种统计,监控或报警等。
我是攻城师
2019/03/06
3.1K0
如何扩展python的logging组件支持json日志输出
Python Web开发中的WSGI协议
 在Python Web开发中,我们一般使用Flask、Django等web框架来开发应用程序,生产环境中将应用部署到Apache、Nginx等web服务器时,还需要uWSGI或者Gunicorn。一个完整的部署应该类似这样:
py3study
2020/01/16
9170
09 | Tornado源码分析:Future 对象
今天我们来看一下 Future 这个对象。从字面意思来看有“未来,将来......”之意义。那它在Tornado 构建的体系中扮演者什么样的角色呢?我们先看一下它的源码:
python编程从入门到实践
2020/07/28
8750
python 查找指定目录下的指定类型文件 脚本
""" Find the largest file of a given type in an arbitrary directory tree. Avoid repeat paths, catch errors, add tracing and line count size. Also uses sets, file iterators and generator to avoid loading entire file, and attempts to work around undecodable dir/file name prints. """
用户5760343
2022/05/13
1.6K0
scrapy进阶开发(一):scrapy架构源码分析
其子类有HtmlResponse,TextResponse,XmlResponse
Meet相识
2018/09/12
2.5K0
scrapy进阶开发(一):scrapy架构源码分析
tf.train.Coordinator
任何线程都可以调用coord.request_stop()来请求所有线程停止。为了配合请求,每个线程必须定期检查coord .should_stop()。一旦调用了coord.request_stop(), coord.should_stop()将返回True。 一个典型的线程运行协调器会做如下事情:
狼啸风云
2019/06/13
1.6K0
python gui中线程的调用
""" ################################################################################# System-wide thread interface utilities for GUIs.
用户5760343
2022/05/13
3770
一篇文章带你搞定Python中logging模块
日志是什么?这个不用多解释。百分之九十的程序都需要提供日志功能。Python内置的logging模块,为我们提供了现成的高效好用的日志解决方案。但是,不是所有的场景都需要使用logging模块,
Go进阶者
2021/11/19
4390
一篇文章带你搞定Python中logging模块
点击加载更多

相似问题

反应-本机:挠曲盒对齐

24

右对齐反应本机挠曲盒

32

挠曲盒高度在反应本机

10

挠曲盒响应导航问题

10

图像内响应挠曲盒问题

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文