我有一个 C# 应用程序。
我有一个从 xsd 生成的类。该类如下所示
public class Transaction
{
public bool amountSpecified {get; set;}
public double amount {get; set;}
}
如果您注意到上面的类中,除了属性 amount 之外,生成器还生成了一个名为 amountSpecified 的属性。
我知道所有不可为空的字段/属性都需要带有后缀“Specified”的属性,因为这是本文 [文章][1] 中提到的 XML Serializer 的要求。
但是我只使用 JSON 序列化和反序列化(使用 JSON.NET),我还需要那些带有“Specified”后缀的字段吗?如果我删除它们,我是否应该使我的字段/属性可以为空,如下所示?
double? amount;
我的问题是所有这些都是由 JSON.Net 内部处理的吗?我可以安全地删除所有带有“指定”后缀的字段并且不使我的字段可为空吗?
如果有人能指出我正确的方向,我将非常高兴。
提前致谢。
As 自2008年以来一直在讨论 http://json.codeplex.com/discussions/28889,他们修复了它以支持可为空类型。我也尝试过这个代码
using System;
using Newtonsoft.Json;
namespace TestJson
{
class Test {
public double? amount { get; set; }
}
class MainClass
{
public static void Main(string[] args)
{
string jsonStr = JsonConvert.SerializeObject(new Test());
string jsonStr2 = JsonConvert.SerializeObject(new Test { amount = 5 } );
Console.WriteLine(jsonStr);
Console.WriteLine(jsonStr2);
Console.ReadLine();
}
}
}
它工作得很好:
{"amount":null}
{"amount":5.0}
和属性Specified
不需要后缀。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)