当前位置: 首页 > 面试题库 >

JavaScriptSerializer-自定义属性名称

慕容高卓
2023-03-14
问题内容

我正在使用JavaScriptSerializer反序列化json数据。一切工作都很好,但是我的问题是,json数据中的一个属性被命名为“
base”,所以我无法在C#代码中创建这样的属性。我发现我可以手动将值映射到构造函数中的属性,但是问题是,我的DTO具有200个属性,因此我不想手动进行此操作,而是希望找到任何其他解决方案。我也尝试使用注释,但这是:

[JsonProperty("base")]
public int baseValue { get; set; }

并没有帮助我,每次将baseValue值设置为0(如果您认为此批注应该起作用,那么我可以发布我的整个代码,而不仅仅是这2行)

有什么办法可以简单地解决我的问题?


问题答案:

分几部分回答:

  1. 要创建一个名为的属性base,您需要在名称前加上@

    public int @base { get; set; }
    
  2. 您写道您正在使用JavaScriptSerializer。该属性[JsonProperty]用于完全不同的序列化程序Json.NET。此属性对无效JavaScriptSerializer

如果要切换到Json.NET,则可以使用此属性。

或者,如果要改为将数据协定属性应用于类型,则可以使用Json.NET或DataContractJsonSerializer使用重命名的属性来序列化类型。

  1. 实际上,JavaScriptSerializer除了编写custom之外,无法重命名属性以进行序列化JavaScriptConverter。这个序列化器是非常准的。它支持的唯一序列化属性是ScriptIgnore禁止属性的序列化。


 类似资料:
  • 本文向大家介绍C#自定义属性,包括了C#自定义属性的使用技巧和注意事项,需要的朋友参考一下 示例 查找具有自定义属性的属性-MyAttribute 查找给定属性上的所有自定义属性 枚举具有自定义属性的所有类-MyAttribute 在运行时读取自定义属性的值 用法            

  • 自定义标签的意义在于方便管理,可以给SIM卡增加一个标签,并且针对某个标签进行统计、查询及管理。支持批量操作。 设置号码自定义标签 支持针对订单、针对iccid进行自定义标签的设置。 号码详情页查询/设置自定义标签 号码详情页,可以查看当前号码已设置的自定义标签,并且可以针对其添加、修改。 自定义标签管理 可以增加、修改、删除自定义属性及其值。

  • 问题内容: 我正在使用JAXB来基于某些XSD架构生成Java类。对于诸如以下的元素: jaxb生成以下代码: 问题是我们需要使用一些专有的XML工具,这些工具依赖于getter / setter方法的命名约定。例如,对于字段REC_LOC,他们希望使用名为getRecLoc(String value)和setRecLoc()的方法,而不是getRECLOC()。 有什么方法可以自定义jaxb生成

  • 我使用JAXB根据一些XSD模式生成java类。对于以下元素: <代码> jaxb生成以下代码: 问题是我们需要使用一些依赖于getter/setter方法命名约定的专有XML工具,例如,对于字段REC_LOC他们希望使用名为getRecLoc(String value)和setRecLoc()的方法,而不是getRECLOC()。 有没有办法自定义jaxb生成的方法名?

  • 试图向OpenLDAP添加一个新属性,但总是碰壁。我正在尝试向架构添加ipPhone属性,因为我不能在默认的telephoneNumber属性中包含*数字。 下面是我的LDIF文件,用于创建新属性并将其与objectClass类似。 我已经测试和谷歌了几个小时,但一直无法解决这个问题或找出我错过了什么!

  • 您可以通过使用attributeBindings属性将属性绑定到DOM元素来自定义属性。 语法 (Syntax) import Ember from 'ember'; export default Ember.Component.extend ({ tagName: 'tag_name', attributeBindings: ['attr_name'], attr_name: