Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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# Newtonsoft反序列化同一日期返回不同的输出_C#_Json_Xamarin_Json.net - Fatal编程技术网

C# Newtonsoft反序列化同一日期返回不同的输出

C# Newtonsoft反序列化同一日期返回不同的输出,c#,json,xamarin,json.net,C#,Json,Xamarin,Json.net,我正在为我的Xamarin应用程序使用Newtonsoft反序列化JSON,在反序列化DateTime时遇到了一些问题 我尝试在asp.net C#上使用相同的代码,并将数据存储到数据集中。C#给了我正确的输出。然而,当它变成Xamarin形式时,它会产生错误的输出 预期结果应为2019年2月4日凌晨12:00:00 我不知道2019年4月1日下午4:00:00是怎么来的 使用Xamarin时输出错误 public List<GetFleet> GetDefaults(string

我正在为我的Xamarin应用程序使用Newtonsoft反序列化JSON,在反序列化DateTime时遇到了一些问题

我尝试在asp.net C#上使用相同的代码,并将数据存储到数据集中。C#给了我正确的输出。然而,当它变成Xamarin形式时,它会产生错误的输出

预期结果应为2019年2月4日凌晨12:00:00

我不知道
2019年4月1日下午4:00:00
是怎么来的

使用Xamarin时输出错误

public List<GetFleet> GetDefaults(string xUserID)
    {
        string inJson = 
        List<GetFleet> tempList = new List<GetFleet>();
        try
        {
            Uri serverUri2 = new Uri(inJson.ToString());

            string rs2 = RequestGeoHttpAsString(serverUri2);

            DataSet dataSet = JsonConvert.DeserializeObject<DataSet>(rs2);

            DataTable dataTable = dataSet.Tables["Table1"];

            foreach (DataRow row in dataTable.Rows)
            {
                tempList.Add(new GetFleet
                {
                    FleetID = row["registrationNumber"].ToString(),
                    FleetName = row["Location"].ToString(),
                    FleetIgnition = row["Ignition"].ToString(),
                    FleetFuel1 = row["sFuel1"].ToString(),
                    FleetStartTime = row["startTime"].ToString()

                });
            }

        }
        catch (Exception ex)
        {
            string exe = ex.Message;
        }
        return tempList;
    }

使用C语言实现右输出#

使用沙马林

public List<GetFleet> GetDefaults(string xUserID)
    {
        string inJson = 
        List<GetFleet> tempList = new List<GetFleet>();
        try
        {
            Uri serverUri2 = new Uri(inJson.ToString());

            string rs2 = RequestGeoHttpAsString(serverUri2);

            DataSet dataSet = JsonConvert.DeserializeObject<DataSet>(rs2);

            DataTable dataTable = dataSet.Tables["Table1"];

            foreach (DataRow row in dataTable.Rows)
            {
                tempList.Add(new GetFleet
                {
                    FleetID = row["registrationNumber"].ToString(),
                    FleetName = row["Location"].ToString(),
                    FleetIgnition = row["Ignition"].ToString(),
                    FleetFuel1 = row["sFuel1"].ToString(),
                    FleetStartTime = row["startTime"].ToString()

                });
            }

        }
        catch (Exception ex)
        {
            string exe = ex.Message;
        }
        return tempList;
    }
public List GetDefaults(字符串xUserID)
{
字符串inJson=
列表模板列表=新建列表();
尝试
{
Uri serverUri2=新Uri(inJson.ToString());
字符串rs2=RequestGeoHttpPasString(serverUri2);
DataSet DataSet=JsonConvert.DeserializeObject(rs2);
DataTable=dataSet.Tables[“Table1”];
foreach(dataTable.Rows中的DataRow行)
{
添加(新的GetFleet)
{
FleetID=行[“注册号”]。ToString(),
FleetName=行[“位置”]。ToString(),
FleetIgnition=行[“点火”]。ToString(),
FleetFuel1=行[“sFuel1”]。ToString(),
FleetStartTime=行[“startTime”]。ToString()
});
}
}
捕获(例外情况除外)
{
字符串exe=ex.消息;
}
返回圣殿骑士;
}
使用C#

受保护的无效页面加载(对象发送方,事件参数e)
{
字符串url=
Uri serverUri2=新Uri(url.ToString());
字符串rs2=RequestGeoHttpPasString(serverUri2);
DataSet DataSet=JsonConvert.DeserializeObject(rs2);
DataTable=dataSet.Tables[“Table1”];
字符串json=JsonConvert.SerializedObject(数据集,格式化,缩进);
Response.Write(json);
}
公共字符串RequestGeoHttpPasstring(Uri地址)
{
字符串结果=”;
//创建web请求
HttpWebRequest request=System.Net.WebRequest.Create(地址)为HttpWebRequest;
//得到回应
使用(HttpWebResponse=request.GetResponse()作为HttpWebResponse)
{
//获取响应流
StreamReader=新的StreamReader(response.GetResponseStream());
//阅读全部内容并以字符串形式返回
结果=reader.ReadToEnd();
}
返回结果;
}

我在这件事上使用了另一种解决方案。 我在后端将日期转换为string/VARCHAR。
当它以JSON返回时,它将是文本。

您收到的实际JSON是什么?看起来你得到了不同的数据。我想,你看的不是同一个记录。
fuel1的值也不同
190.60
vs.
191.16
的时间偏移量不会出现问题?日期时间序列化将受到您的区域设置的影响-您确定要测试的两个系统具有相同的区域设置吗?这可能是格式问题吗?反序列化时是否使用日期时间转换器?