当前位置: 首页 > 知识库问答 >
问题:

无法将JSON值转换为System。可为空的'1[System.DateTime[重复]

艾国安
2023-03-14

我有一个DateTime属性为空的模型

public DateTime? DateOfBirth { get; set; }

使用属性的以下值调用API时

{       "Country": "US",
       "State": "New York",
       "Zip" : "123455",
       "dateOfBirth": "8/15/62"
}

此错误由引发。net框架:

"errors": {
        "$.dateOfBirth": [
            "The JSON value could not be converted to System.Nullable`1[System.DateTime]. Path: $.dateOfBirth | LineNumber: 9 | BytePositionInLine: 33."
        ]

解析似乎适用于其他日期格式,如yyyy-mm-dd,但不适用于上面示例中提到的格式。

共有1个答案

邵文乐
2023-03-14

我用Newtonsoft反序列化了它。Json,在这个过程中没有错误。我用过这门课

public class Root
{
    public string Country { get; set; }
    public string State { get; set; }
    public string Zip { get; set; }
    public DateTime? dateOfBirth { get; set; }
}

但是我的Windows CultureInfo(“en US”)。如果您的区域性信息不同,或者正在使用另一个序列化程序,并且存在问题,我建议您将DateTime类型更改为string,并在反序列化后尝试转换为ToDateTime。

DateTime格式取决于Windows设置中的区域性,因此如果DateTime字符串格式在美国(如在json中)但您在欧洲,您将始终收到错误,因此我建议您最好使用此代码,因为您可以选择json的区域性,而不是Windows默认值。

public class Root
{
    public string Country { get; set; }
    public string State { get; set; }
    public string Zip { get; set; }

     [JsonProperty("dateOfBirth")]
    private string DateOfBirth { get; set; }
    
    [JsonIgnore]
    public DateTime? dateOfBirth
    {
        get { return DateTime.Parse(DateOfBirth, new CultureInfo("en-US")); }
    }
}
 类似资料:
  • 问题内容: 我收到此错误: 无法将MySQL日期/时间值转换为System.DateTime 当我尝试从MySQL数据库中获取数据时。我的MySQL数据库中有 日期 数据类型。但是,当将其检索到我的数据表中时,它得到了上面的错误。 我怎样才能解决这个问题? 问题答案: 如果我用谷歌搜索“无法将MySQL日期/时间值转换为System.DateTime”,我会看到许多关于从Visual Studio

  • 问题内容: 这是我的代码 这里是我列的数据库,它的类型是,它是 可为空 我有这个例外: 无法将DBNull.Value强制转换为类型“ System.DateTime”。请使用可为空的类型。 你能帮忙吗? 问题答案: 支持可为null的类型,因此请使用代替:

  • 我有包含非法字符的json 我想要从服务器spring发送到客户端的明文,这样客户端就可以获得完整的数据。 如何将字符串的非法字符替换为有效的json对象?

  • 问题内容: 我的网站服务正在将DateTime返回到jQuery调用。服务以以下格式返回数据: 如何将其转换为JavaScript友好的日期? 问题答案: 返回的时间是自纪元以来的毫秒数。您可以这样做: 有关如何精确设置日期格式的信息,请参见完整参考。 您可以通过解析整数来去除非数字: 或应用以下正则表达式(来自注释中的Tominator):

  • 我从rest调用中获得了一个json,其格式为{“D1”:1,“D2”:1,“D3”:0,“D4”:1},它在db中存储为-{D1=1,D2=1,D3=0,D4=1}。 到目前为止我已经试过了,但没有成功- JSONParser parser=新的JSONParser();JSONObject json=(JSONObject)parser.parse(jsonString); 我想把这个json

  • 假设我有一个像这样的数据框... 我想把这个列转换成int类型。我可以很容易地做到这一点与。。。 但是如果我的数据帧看起来像这样。。。 我尝试将其从转换为然后我得到了这个错误 为什么这样不行?我该如何正确地将其转换为int?