teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

JSONキーをダブルクオートでかこみました。JSON内dateプロパティ末尾の不要なカンマを削除しました。

2021/03/15 09:28

投稿

tomlla_92
tomlla_92

スコア11

title CHANGED
File without changes
body CHANGED
@@ -2,12 +2,13 @@
2
2
  YYYY-MM-DD 形式のjson文字列をNaiveDateに変換したい
3
3
 
4
4
  ```rust
5
- let json_str = r#"
5
+ let json_str = r#"
6
- {
6
+ {
7
- id:1,
7
+ "id": 1,
8
- date:"2021-03-15",
8
+ "date": "2021-03-15"
9
- }"#;
9
+ }"#;
10
10
  ```
11
+
11
12
 
12
13
 
13
14
  ```rust

3

Fix typo (D::Deserializer -> Deserializer)

2021/03/15 09:28

投稿

tomlla_92
tomlla_92

スコア11

title CHANGED
File without changes
body CHANGED
@@ -78,7 +78,7 @@
78
78
  ```
79
79
 
80
80
  ↑ 返り値の型が違うのでここでこのまま返せないのはわかっているんですが、matchなりmap_errを使ったあとに、
81
- どうやって `chrono::ParseError` から `D::Deserializer<'de>` オブジェクトを作ればよいのでしょう?
81
+ どうやって `chrono::ParseError` から `Deserializer<'de>` オブジェクトを作ればよいのでしょう?
82
82
 
83
83
 
84
84
  ## cargo build の結果

2

TypoFix

2021/03/15 06:12

投稿

tomlla_92
tomlla_92

スコア11

title CHANGED
File without changes
body CHANGED
@@ -76,8 +76,11 @@
76
76
  nd
77
77
  }
78
78
  ```
79
- ↑ 返り値の型が違うのでここでこのまま返せないのはわかっているんですが、matchなり、map_errを使うったあとに、どうやって `D::Deserializer<'de>` オブジェクトを作ればよいのでしょう、
80
79
 
80
+ ↑ 返り値の型が違うのでここでこのまま返せないのはわかっているんですが、matchなりmap_errを使ったあとに、
81
+ どうやって `chrono::ParseError` から `D::Deserializer<'de>` オブジェクトを作ればよいのでしょう?
82
+
83
+
81
84
  ## cargo build の結果
82
85
  ```
83
86
  |

1

不要なコメントアウト部分を削除

2021/03/15 04:58

投稿

tomlla_92
tomlla_92

スコア11

title CHANGED
File without changes
body CHANGED
@@ -14,7 +14,6 @@
14
14
  #[derive(Serialize, Deserialize, Debug)]
15
15
  struct Record {
16
16
  id: i32,
17
-
18
17
  #[serde(with="yyyy_mm_dd_fmt")]
19
18
  date: NaiveDate,
20
19
  }
@@ -26,7 +25,6 @@
26
25
  mod yyyy_mm_dd_fmt {
27
26
  use chrono::{NaiveDate};
28
27
  use serde::{self, Deserialize, Serializer, Deserializer};
29
-
30
28
  const FORMAT: &'static str = "%Y-%m-%d";
31
29
 
32
30
  pub fn serialize<S>(date: &NaiveDate, serializer: S) -> Result<S::Ok, S::Error>
@@ -36,7 +34,6 @@
36
34
  serializer.serialize_str(&s)
37
35
  }
38
36
 
39
-
40
37
  pub fn deserialize<'de, D>(deserializer: D) -> Result<NaiveDate, D::Error>
41
38
  where D: Deserializer<'de>,
42
39
  {
@@ -48,13 +45,10 @@
48
45
 
49
46
  use serde::{Serialize, Deserialize};
50
47
  use chrono::NaiveDate;
51
- // use std::time::{Duration, Instant};
52
48
 
53
-
54
49
  #[derive(Serialize, Deserialize, Debug)]
55
50
  struct Record {
56
51
  id: i32,
57
-
58
52
  #[serde(with="yyyy_mm_dd_fmt")]
59
53
  date: NaiveDate,
60
54
  }