@@ -521,73 +521,73 @@ mod test {
521521 let err = from_str :: < Foo > ( "{ \" b\" :[]}" ) . unwrap_err ( ) ;
522522 assert_eq ! (
523523 format!( "{err}" ) ,
524- "missing field `a` at line 1 column 8 \n \n \t { \" b\" :[]}\n \t ........^\n "
524+ "missing field `a` at line 1 column 9 \n \n \t { \" b\" :[]}\n \t ........^\n "
525525 ) ;
526526
527527 let err = from_str :: < Foo > ( "{\" a\" : [1, 2x, 3, 4, 5]}" ) . unwrap_err ( ) ;
528528 println ! ( "{err}" ) ;
529529 assert_eq ! (
530530 format!( "{err}" ) ,
531531 "Expected this character to be either a ',' or a ']' while parsing at line 1 column \
532- 11 \n \n \t \" : [1, 2x, 3, 4,\n \t ........^.......\n "
532+ 12 \n \n \t \" : [1, 2x, 3, 4,\n \t ........^.......\n "
533533 ) ;
534534
535535 let err = from_str :: < Foo > ( "{\" a\" : null}" ) . unwrap_err ( ) ;
536536 assert_eq ! (
537537 format!( "{err}" ) ,
538- "invalid type: null, expected a sequence at line 1 column 9 \n \n \t \" a\" : \
538+ "invalid type: null, expected a sequence at line 1 column 10 \n \n \t \" a\" : \
539539 null}\n \t ........^.\n "
540540 ) ;
541541
542542 let err = from_str :: < Foo > ( "{\" a\" : [1,2,3 }" ) . unwrap_err ( ) ;
543543 assert_eq ! (
544544 format!( "{err}" ) ,
545545 "Expected this character to be either a ',' or a ']' while parsing at line 1 column \
546- 14 \n \n \t [1,2,3 }\n \t ........^\n "
546+ 15 \n \n \t [1,2,3 }\n \t ........^\n "
547547 ) ;
548548
549549 let err = from_str :: < Foo > ( "{\" a\" : [\" 123\" ]}" ) . unwrap_err ( ) ;
550550 assert_eq ! (
551551 format!( "{err}" ) ,
552- "invalid type: string \" 123\" , expected i32 at line 1 column 11 \n \n \t \" : \
552+ "invalid type: string \" 123\" , expected i32 at line 1 column 12 \n \n \t \" : \
553553 [\" 123\" ]}\n \t ........^..\n "
554554 ) ;
555555
556556 let err = from_str :: < Foo > ( "{\" a\" : [" ) . unwrap_err ( ) ;
557557 assert_eq ! (
558558 format!( "{err}" ) ,
559- "EOF while parsing at line 1 column 6 \n \n \t {\" a\" : [\n \t ......^\n "
559+ "EOF while parsing at line 1 column 7 \n \n \t {\" a\" : [\n \t ......^\n "
560560 ) ;
561561
562562 let err = from_str :: < Foo > ( "{\" a\" : [000]}" ) . unwrap_err ( ) ;
563563 assert_eq ! (
564564 format!( "{err}" ) ,
565565 "Expected this character to be either a ',' or a ']' while parsing at line 1 column \
566- 8 \n \n \t {\" a\" : [000]}\n \t ........^...\n "
566+ 9 \n \n \t {\" a\" : [000]}\n \t ........^...\n "
567567 ) ;
568568
569569 let err = from_str :: < Foo > ( "{\" a\" : [-]}" ) . unwrap_err ( ) ;
570570 assert_eq ! (
571571 format!( "{err}" ) ,
572- "Invalid number at line 1 column 7 \n \n \t {\" a\" : [-]}\n \t .......^..\n "
572+ "Invalid number at line 1 column 8 \n \n \t {\" a\" : [-]}\n \t .......^..\n "
573573 ) ;
574574
575575 let err = from_str :: < Foo > ( "{\" a\" : [-1.23e]}" ) . unwrap_err ( ) ;
576576 assert_eq ! (
577577 format!( "{err}" ) ,
578- "Invalid number at line 1 column 12 \n \n \t : [-1.23e]}\n \t ........^..\n "
578+ "Invalid number at line 1 column 13 \n \n \t : [-1.23e]}\n \t ........^..\n "
579579 ) ;
580580
581581 let err = from_str :: < Foo > ( "{\" c\" : \" 哈哈哈哈哈哈}" ) . unwrap_err ( ) ;
582582 assert_eq ! (
583583 format!( "{err}" ) ,
584- "EOF while parsing at line 1 column 25 \n \n \t 哈哈哈}\n \t .........^\n "
584+ "EOF while parsing at line 1 column 26 \n \n \t 哈哈哈}\n \t .........^\n "
585585 ) ;
586586
587587 let err = from_slice :: < Foo > ( b"{\" b\" :\" \x80 \" }" ) . unwrap_err ( ) ;
588588 assert_eq ! (
589589 format!( "{err}" ) ,
590- "Invalid UTF-8 characters in json at line 1 column 6 \n \n \t {\" b\" :\" �\" }\n \t ......^..\n "
590+ "Invalid UTF-8 characters in json at line 1 column 7 \n \n \t {\" b\" :\" �\" }\n \t ......^..\n "
591591 ) ;
592592 }
593593
@@ -599,4 +599,15 @@ mod test {
599599 "NaN or Infinity is not a valid JSON value"
600600 ) ;
601601 }
602+
603+ #[ test]
604+ fn test_error_column ( ) {
605+ let json_str = r#"
606+ {
607+ "key": [, 1, 2, 3]
608+ }
609+ "# ;
610+ let err = from_str :: < crate :: Value > ( json_str) . unwrap_err ( ) ;
611+ assert_eq ! ( err. column( ) , 13 ) ;
612+ }
602613}
0 commit comments