至少在Firefox中,您可以对Date对象进行字符串化:
>>> JSON.stringify({'now': new Date()})
'{"now":"2012-04-23T18:44:05.600Z"}'
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为(在Firefox中)Date包含toJSON其JSON序列化程序使用的方法.但是,这不是JSON标准的一部分,所以我想知道为什么这个方法存在,或者为什么内置JSON序列化器检查这样的方法.由于它没有标准化,所以无论如何都不能安全地使用它,如果内置的序列化器理解它并且使用自定义的(例如json2.js)
我最近在现有的VS桌面应用程序中添加了WEB API,一切正常,直到昨天我必须添加一个带有三个参数的GET方法,其中一个是Date.好吧,起初我认为那将是一块蛋糕,但令我惊讶的是,我注意到当我在安装应用程序的服务器上发送2014/07/09(7月9日)时,它被视为2014/09/07(9月7日)因此我所有的比较都没有奏效.
我尝试过从GET方法更改为POST方法,在服务器上将区域和语言选项设置更改为相同的内容,将日期作为字符串传递,使用字符串的部分在服务器上创建Datetime对象.不幸的是他们都没有工作.
然后我记得这个桌面应用程序在它的WCF项目上有一些方法(我现在传递给web API),它完全没有问题地通过日期.查看代码一段时间后,我发现他们在使用日期的WCF项目的每个类中使用了类似的东西:
Imports System.Globalization
Imports System.Security.Permissions
Imports System.Threading
Public Class ServicioRemotoVentas
Implements IServicioRemotoVentas
Public Sub New()
MyBase.New()
Thread.CurrentThread.CurrentCulture = New CultureInfo("es-PE", False)
End Sub
Run Code Online (Sandbox Code Playgroud)
当然这个Thread.CurrentThread.CurrentCulture = New CultureInfo("es-PE",False)必须存在.现在我想知道你以前是否在Web API中使用过类似的东西?如果是这样,你如何以及在哪里放置这样的配置.
这些是我电脑上的设置:


这些是服务器设置:

我几乎忘了提到我使用这个格式yyyy/M/d以及使用json的所有其他参数传递所有日期.是否可能在Web API中对字符串进行反序列化时,这是使用系统日期格式完成的,因为我没有指定要使用的文化信息?或者在尝试序列化/反序列化日期时可能是Json错误?
与往常一样,您可以提供的任何建议或资源将不胜感激.
我正在使用节点Bigquery Package来运行简单的作业。查看工作的结果(例如data),effective_date属性如下所示:
effective_date: BigQueryDate { value: '2015-10-02' }
Run Code Online (Sandbox Code Playgroud)
这显然是返回data对象中的一个对象。
将返回的json导入Firestore会产生以下错误:
UnhandledPromiseRejectionWarning: Error: Argument "data" is not a
valid Document. Couldn't serialize object of type "BigQueryDate".
Firestore doesn't support JavaScript objects with custom prototypes
(i.e. objects that were created via the 'new' operator).
Run Code Online (Sandbox Code Playgroud)
有没有一种优雅的方式来解决这个问题?是否需要遍历结果并转换/删除所有对象?
node.js google-bigquery google-cloud-datastore google-cloud-firestore
我们想向正在测试我们的应用程序的用户展示一些JSON.所以我们在ASP.NET代码隐藏文件中调用我们的REST服务并返回一个包含大量JSON的字符串.
然后我们将它放在页面中的PRE元素中,调用beautify来创建可读的JSON并且一切都很好:显示了一些人类可读的内容.
好但是一件事:所有日期都以正常的JSON格式显示,如"/ Date(1319266795390 + 0800)/"
我想要做的是用JSON(C#)字符串中的'普通'日期替换那些JSON日期,所以在后面的代码中,在我将字符串添加到PRE元素之前.
我在考虑一些正则表达式,但我无法弄清楚如何......
Spark SQL支持从JSON输入源自动推断架构(每行是一个独立的JSON文件) - 它通过扫描整个数据集来创建架构,但它仍然有用.(我说的是1.2.1,而不是新的1.3,所以可能会有一些变化)
我看到一些有关它被支持/不支持的相互矛盾的帖子,但我认为最近添加了(在1.2中)
我的问题是 - 在JSON中为Spark SQL格式化日期/日期时间/时间戳的正确方法是什么,以便在其自动模式推理机制中识别它?
我试图从firebase时间戳获取日期和时间,如下所示:
Date date=new Date(timestamp*1000);
SimpleDateFormat sfd = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
sfd.format(date)
Run Code Online (Sandbox Code Playgroud)
但我得到的结果如下:
:02-02-48450 04:21:54
:06-02-48450 10:09:45
:07-02-48450 00:48:35
Run Code Online (Sandbox Code Playgroud)
你可以看到这一年不是我们的生活.
所以,请帮我解决这个问题.
我正在将Web API从.NET Core 2.2迁移到3.0,并希望使用新的API System.Text.Json。使用时,Newtonsoft我可以DateTime使用以下代码进行格式化。我该怎么做?
.AddJsonOptions(options =>
{
options.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc;
options.SerializerSettings.DateFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ssZ";
});
Run Code Online (Sandbox Code Playgroud) 我正在使用客户端应用程序中的可调用函数从 Firestore 中检索一些数据。数据是使用以下方法创建的:
projectData = {
created: firebase.firestore.FieldValue.serverTimestamp(),
...otherData
}
firebase.firestore().collection(projectsCollection).add(projectData)
Run Code Online (Sandbox Code Playgroud)
我可以看到时间戳正确保存在 Firestore 控制台中。callable 函数做了一些其他的事情并且有错误处理,但是数据检索是这样完成的(使用 lodash 将每个文档展开成一个对象返回给客户端):
const projectRef = firestore.collection(gProjectsCollection).orderBy('created')
return projectRef.get().then(snapshot => {
return {
projects: _.chain(snapshot.docs)
.keyBy('id')
.mapValues(s => s.data())
.value()
}
})
Run Code Online (Sandbox Code Playgroud)
这主要是有效的,但返回的对象有一个被破坏的created属性(在函数 shell 输出中显示):
RESPONSE RECEIVED FROM FUNCTION: 200, {
"result": {
"projects": {
"XcRyQyaxLguRdbNmxQdn": {
"name": "c",
"description": "c",
"created": {
"_seconds": 1543405587,
"_nanoseconds": 169000000
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我假设这是因为可调用函数在JSON.stringify()内部使用,并且服务器时间戳未正确转换。我尝试将时间戳显式转换为这样的日期:
return projectRef.get().then(snapshot => {
return {
exVersion,
exId,
projects: …Run Code Online (Sandbox Code Playgroud) javascript firebase google-cloud-functions google-cloud-firestore
我正在尝试反序列化以下 JSON
{"serverTime":1613967667240}
Run Code Online (Sandbox Code Playgroud)
进入以下类的对象
public class ApiServerTime
{
[JsonPropertyName("serverTime")]
public DateTime ServerTime
{
get;
private set;
}
}
Run Code Online (Sandbox Code Playgroud)
使用以下命令:
JsonSerializer.Deserialize<ApiServerTime>(jsonString);
Run Code Online (Sandbox Code Playgroud)
但生成的对象包含ServerTime == DateTime.MinValue. 我究竟做错了什么?
我正在收到JSON来自 PHP 服务器的响应。在android中,我需要编写一个java模型(POJO)来用来解析Retrofit(用于http请求的Android库)中的响应。
JSON 结构:
{
"calendar": {
"2016-06-10": [
{
"time": "10h00m",
"title": "PROVA P2",
"description": "LP / RED / ED.FIS - 80 E 90",
"color": "#990000"
}
],
"2016-06-11": [
{
"time": "10h00m",
"title": "SIMULADO",
"description": "LOREM PSIUM DOLOR LOREM",
"color": "#009900"
},
{
"time": "11h00m",
"title": "CONSELHO DE CLASSE",
"description": "LOREM PSIUM DOLOR",
"color": "#009900"
}
]
},
"error": false
}
Run Code Online (Sandbox Code Playgroud)
这JSON是来自 PHP 服务器。我该如何使用Retrofit来处理它?
json ×6
c# ×4
datetime ×3
android ×2
date ×2
javascript ×2
apache-spark ×1
asp.net-core ×1
firebase ×1
gson ×1
node.js ×1
regex ×1
retrofit ×1
timestamp ×1