Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.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# 不要将JToken日期时间字符串转换为DateTime_C#_Json_Parsing_Datetime - Fatal编程技术网

C# 不要将JToken日期时间字符串转换为DateTime

C# 不要将JToken日期时间字符串转换为DateTime,c#,json,parsing,datetime,C#,Json,Parsing,Datetime,正在尝试解析以字符串形式保存datetime的JToken。隐式地说,它所做的是将其视为DateTime,解析,然后作为字符串传回 原始值为:“2015-11-23T00:00:00” 当我执行arr[“value”].ToString()时 我得到:“2015年11月23日00:00:00” 我真正想要的是传递的任何东西,即原始值 尝试使用格式。无,但这会带来双引号等 有一种简单的方法吗?您可以使用声明为“string”的成员来描述类,并在序列化中使用它,以便将其存储在原始表示形式中: pub

正在尝试解析以字符串形式保存datetime的JToken。隐式地说,它所做的是将其视为DateTime,解析,然后作为字符串传回

原始值为:
“2015-11-23T00:00:00”

当我执行
arr[“value”].ToString()时
我得到:
“2015年11月23日00:00:00”

我真正想要的是传递的任何东西,即原始值

尝试使用
格式。无
,但这会带来双引号等


有一种简单的方法吗?

您可以使用声明为“string”的成员来描述类,并在序列化中使用它,以便将其存储在原始表示形式中:

public class MyObject 
{ 
    public string date { get; set ; }
}

string json = "{ \"date\": \"2015-11-23T00:00:00\" }";
var myObj = JsonConvert.DeserializeObject<MyObject>(json);

Console.WriteLine(myObj.date);
公共类MyObject
{ 
公共字符串日期{get;set;}
}
字符串json=“{\”日期\“:\”2015-11-23T00:00:00\”;
var myObj=JsonConvert.DeserializeObject(json);
控制台写入线(myObj.date);

使用
DateParseHandling
覆盖JSON.NET自动尝试DateTimeify任何看起来像DateTimey的内容

void Main()
{
    var s = "{ \"value\" : \"2015-11-23T00:00:00\" }";

    using (var sr = new StringReader(s))
    using (var jr = new JsonTextReader(sr) { DateParseHandling = DateParseHandling.None })
    {
        var j = JToken.ReadFrom(jr);
        Console.WriteLine(j["value"].ToString()); // prints '2015-11-23T00:00:00'
    }
}

首先
序列化对象
,然后
反序列化对象
,以获取日期字段的安全值

JsonConvert.DeserializeObject(JsonConvert.SerializeObject(value);

你所说的我真正想要的是什么,是什么意思?你的意思是与字符串的表示形式相同吗?@SonerGönül是的,与字符串文字完全相同。没有类型转换。它实际上是JArray,它是键值对。以及需要解析为字符串的JToken,以便中间件能够处理它。