Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何以JSON格式传递TimeSpan值?_C#_Json_Wcf - Fatal编程技术网

C# 如何以JSON格式传递TimeSpan值?

C# 如何以JSON格式传递TimeSpan值?,c#,json,wcf,C#,Json,Wcf,我使用Fiddler测试我的WCF休息。我总是很紧张 HTTP/1.1 400 Bad Request 使用此post值: { "session":{ "Session":"088a688d-ea69-4264-9266-381e9e540d00", "LoginID":"testid", "Serial":"testserial" }, "sub":[ { "Type":0,

我使用Fiddler测试我的WCF休息。我总是很紧张

HTTP/1.1 400 Bad Request  
使用此post值:

{
    "session":{
        "Session":"088a688d-ea69-4264-9266-381e9e540d00",
        "LoginID":"testid",
        "Serial":"testserial"
    },
    "sub":[
        {
            "Type":0,
            "StartDate":"\/Date(1319731200000+0800)\/",
            "EndDate":"\/Date(1319731200000+0800)\/",
            "Duration":"12:12:12"
        }
    ]
}  
我在“持续时间”值中得到错误。我一直在网上搜索,但一点运气都没有。

我希望我能在这里找到答案。非常感谢

简单的方法是将timespan解析为字符串,并使用其静态“parse”例程转换为timespan

对于JSON和WCF,您依赖JSON Serialiser来回转换对象,不幸的是,一旦您开始“移动”本机对象类型,即字符串、数字和特定对象,除非您使用确切的格式,否则它往往会阻塞

就我个人而言,我没有通过DataContractJsonSerializer传递Timespan的经验,但是我会强调确切的格式以及是否可能

什么是.NET类型的“sub”?它看起来像某种集合或数组类型;.NET希望这些元素具有什么类型?该类型是否具有属性类型、StartDate、EndDate和Duration?它是否有任何其他标记为[IsRequiredAttribute]但不存在的属性

如果创建一个新的DataContractJsonSerializer(type=TimeSpan),并尝试反序列化字符串“12:12:12”,那么会发生什么

我还没有给你答案,但是我认为现在做这些练习不应该解决你的问题,但是它也会帮助你诊断将来在反序列化这个字符串时可能遇到的错误


另请参见一些指针

您使用什么代码来生成和解析这些数据?(反斜杠/正斜杠序列也有点可疑。)我使用,RequestFormat=WebMessageFormat.Json,但我确信StartDate和EndDate没有问题,我已经测试了很多次。顺便说一句,我尝试检索数据,发现duration有这样的值,“duration”:PT20H8M,其TimeSpan值为20:08:00,你熟悉这个吗?谢谢你的解释。实际上,我将把它们转换成字符串,然后稍后解析数据。但我仍然希望找到最简单的方法。谢谢,但我已经测试了很多次,除了“Duration”值之外,其他属性和值肯定没有问题,因为“Duration”值是一种TimeSpan类型,Json无法序列化。