From 43877b3e5079eb5e9131cb7a355642df2d8b3525 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 15 Jul 2024 15:04:10 +0900 Subject: fix: object correction --- src/lib.rs | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/lib.rs b/src/lib.rs index 7f2ce1a..90c3bab 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -297,7 +297,8 @@ impl Parser { return SyntaxError::InvalidValue.to_result(); } w.write_all(b":")?; - self.walk_element(input, w) + self.walk_ws(input, w)?; + self.walk_value(input, w) } fn walk_array>, W: Write>( @@ -723,5 +724,29 @@ mod tests { assert!(matches!(res, Ok(super::RepairOk::Repaired))); assert_eq!("[1, 2 ]", out); } + { + let s = r#"{ , }"#; + let (res, out) = repair(s); + assert!(matches!(res, Ok(super::RepairOk::Repaired))); + assert_eq!(r#"{ }"#, out); + } + { + let s = r#"{ "a":1 , }"#; + let (res, out) = repair(s); + assert!(matches!(res, Ok(super::RepairOk::Repaired))); + assert_eq!(r#"{ "a":1 }"#, out); + } + { + let s = r#"{"a":1 "b":2 }"#; + let (res, out) = repair(s); + assert!(matches!(res, Ok(super::RepairOk::Repaired))); + assert_eq!(r#"{"a":1, "b":2 }"#, out); + } + { + let s = r#"{"a":1 "b":2 ,}"#; + let (res, out) = repair(s); + assert!(matches!(res, Ok(super::RepairOk::Repaired))); + assert_eq!(r#"{"a":1, "b":2 }"#, out); + } } } -- cgit v1.2.3-70-g09d2