Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.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
将jacksonjson上的Java数据解析为C#_Java_C#_Json_Unity3d_Jackson - Fatal编程技术网

将jacksonjson上的Java数据解析为C#

将jacksonjson上的Java数据解析为C#,java,c#,json,unity3d,jackson,Java,C#,Json,Unity3d,Jackson,我需要使用后端的jackson映射器和前端的Unity映射器(JsonUtility),通过json将java数据从后端解析到c#frontend(Unity) 现在这两个映射器似乎不能一起工作,因为unity映射器总是无法接收正确的日期,并且默认为“空日期”。 我的问题是,我是否需要通过电线发送长(毫秒)的日期? 如果是这样的话,我的jackson映射器将需要一个自定义(反)序列化器-这有什么性能折衷吗 编辑: 没有太多代码可以解释: Maven依赖后端 <dependency>

我需要使用后端的jackson映射器和前端的Unity映射器(JsonUtility),通过json将java数据从后端解析到c#frontend(Unity)

现在这两个映射器似乎不能一起工作,因为unity映射器总是无法接收正确的日期,并且默认为“空日期”。 我的问题是,我是否需要通过电线发送长(毫秒)的日期? 如果是这样的话,我的jackson映射器将需要一个自定义(反)序列化器-这有什么性能折衷吗

编辑:

没有太多代码可以解释:

Maven依赖后端

 <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.9.2</version>
 </dependency>
调用RESTAPI时使用JSON

{
 "aDate": "2018-05-18T22:35:47.760+0000"       
}
前端(C#/Unity)

使用系统;
[可序列化]
公共类前端
{
公共日期时间aDate;
}
私有IEnumerator接受WWW(WWW)
{
//调用后端REST在此处接收后端对象
收益率;
//正在尝试将其解析为前端对象
var dateObject=JsonUtility.FromJson(www.text);
//日期将始终默认为1970年
dateObject.aDate;
}
提前感谢,

科德海

@JsonFormat(shape = JsonFormat.Shape.NUMBER)
private Date aDate;
答案是将日期传输为自划时代以来的秒数。这可以通过C#DateTime读取-但是我不知道这种方法的准确性和性能。 在C#上,要提取long,您需要包括以下内容来将long解析为DateTime:

public static DateTime LongToDate(long javaTimeStamp)
{
    // Java timestamp is milliseconds past epoch
    var dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
    dtDateTime = dtDateTime.AddMilliseconds(javaTimeStamp).ToLocalTime();
    return dtDateTime;
}

您在这里不是新手,现在应该知道需要您的代码来解决问题。您好,程序员,没有太多代码来解释这一点,但您仍然完全正确-我更新了我的问题以满足需要。
@JsonFormat(shape = JsonFormat.Shape.NUMBER)
private Date aDate;
public static DateTime LongToDate(long javaTimeStamp)
{
    // Java timestamp is milliseconds past epoch
    var dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
    dtDateTime = dtDateTime.AddMilliseconds(javaTimeStamp).ToLocalTime();
    return dtDateTime;
}