我有一个像这样的json
[{"date":"2019-04-03(13:43)","storyid":"123363},{""date":"2019-04-03(09:02)","storyid":"123555"},{"date":"2019-04-03(08:44)","storyid":"664224"}]
并且我正在使用c#和.net框架将json反序列化为NewsHeadlines的列表。
JsonConvert.DeserializeObject<List<NewsHeadline>>(json);
这按预期工作,只是我想要一个特定格式(“ yyyy-MM-dd(HH:mm)”)的DateTime属性称为Date。我可以在反序列化后更改日期时间的格式,但是我很想知道是否可以在get set级别更改它。.有人可以帮助我了解如何执行此操作吗?
[DataMember(Name = "date")]
public DateTime Date {get;set}
[DataMember(Name = "storyid")]
public string StoryId {get; set;}
因此最终结果可以是值为2019-04-03(13:43)的Date(DateTime对象)
答案 0 :(得分:2)
$x = new Fieldset("Tipologia");
$x->setHydrator(
new DoctrineObject($em, 'Manifestazione\Entity\Tipologia', true)
)->setObject(
new \Manifestazione\Entity\Tipologia()
);
$form->add(
[
'type' => 'DoctrineModule\Form\Element\ObjectSelect',
'name' => 'tipologie',
'required' => false,
'options' => [
'allow_add' => true,
'allow_remove' => true,
'object_manager' => $em,
'target_class' => 'Manifestazione\Entity\Tipoevento',
'property' => 'descrizione',
'label' => 'Tipo evento',
'empty_option' => ':: NONE ::',
'display_empty_item' => true,
'disable_inarray_validator' => true,
'target_element' => $x
],
'attributes' => [
'id' => 'tipologie',
'class' => 'form-control',
'multiple' => true
]
]
);```
答案 1 :(得分:1)
[IgnoreDataMember]
public DateTime Date { get; set; }
[DataMember(name="Date")]
private string Date_asString
{
get
{
return Date.ToString("yyyy-MM-dd(HH:mm)");
}
set
{
Date = DateTime.Parse(value);
}
}
鉴于您正在使用wcf和datacontract序列化程序。