File tree Expand file tree Collapse file tree 1 file changed +31
-3
lines changed Expand file tree Collapse file tree 1 file changed +31
-3
lines changed Original file line number Diff line number Diff line change @@ -43,9 +43,27 @@ impl<'de, 'a> Deserializer<'de> for JSONValueDeserializer<'a> {
43
43
JSONValue :: Null => visitor. visit_unit ( ) ,
44
44
JSONValue :: Bool ( b) => visitor. visit_bool ( * b) ,
45
45
JSONValue :: DoubleQuotedString ( s) | JSONValue :: SingleQuotedString ( s) => {
46
- visitor. visit_str ( unescape ( s) . unwrap ( ) . as_str ( ) )
46
+ match unescape ( s) {
47
+ Ok ( unescaped) => {
48
+ visitor. visit_str ( unescaped. as_str ( ) )
49
+ }
50
+ Err ( e) => {
51
+ Err ( de:: Error :: custom ( e. to_string ( ) ) )
52
+ }
53
+ }
54
+
47
55
}
48
- JSONValue :: Identifier ( s) => visitor. visit_str ( unescape ( s) . unwrap ( ) . as_str ( ) ) ,
56
+ JSONValue :: Identifier ( s) => {
57
+ match unescape ( s) {
58
+ Ok ( unescaped) => {
59
+ visitor. visit_str ( unescaped. as_str ( ) )
60
+ }
61
+ Err ( e) => {
62
+ Err ( de:: Error :: custom ( e. to_string ( ) ) )
63
+ }
64
+ }
65
+
66
+ } ,
49
67
JSONValue :: JSONObject { key_value_pairs } => {
50
68
// Treat as a map
51
69
let mut map_deserializer = JSONMapAccess {
@@ -556,7 +574,17 @@ impl<'de, 'a> Deserializer<'de> for JSONValueDeserializer<'a> {
556
574
match self . input {
557
575
JSONValue :: Identifier ( s)
558
576
| JSONValue :: DoubleQuotedString ( s)
559
- | JSONValue :: SingleQuotedString ( s) => visitor. visit_str ( unescape ( s) . unwrap ( ) . as_str ( ) ) ,
577
+ | JSONValue :: SingleQuotedString ( s) => {
578
+ match unescape ( s) {
579
+ Ok ( unescaped) => {
580
+ visitor. visit_str ( unescaped. as_str ( ) )
581
+ }
582
+ Err ( e) => {
583
+ Err ( de:: Error :: custom ( e. to_string ( ) ) )
584
+ }
585
+ }
586
+
587
+ } ,
560
588
_ => self . deserialize_any ( visitor) ,
561
589
}
562
590
}
You can’t perform that action at this time.
0 commit comments