@@ -34,7 +34,7 @@ CLASS lcl_util IMPLEMENTATION.
3434 METHOD class_constructor .
3535
3636 " support for ISO8601 => https://en.wikipedia.org/wiki/ISO_8601
37- create_regexp so_regex_iso8601 '^(?:(\d{4})-?(\d{2})-?(\d{2}))?(?:T(\d{2}):?(\d{2})(?::?(\d{2}))?(?:[\.,](\d{0,7 }))?(?:Z|(?:([+-])(\d{2})(?::?(\d{2}))?))?)?\s*$' .
37+ create_regexp so_regex_iso8601 '^(?:(\d{4})-?(\d{2})-?(\d{2}))?(?:T(\d{2}):?(\d{2})(?::?(\d{2}))?(?:[\.,](\d{0,9 }))?(?:Z|(?:([+-])(\d{2})(?::?(\d{2}))?))?)?\s*$' .
3838
3939 ENDMETHOD .
4040
@@ -562,7 +562,7 @@ CLASS abap_unit_testclass IMPLEMENTATION.
562562 lv_exp LIKE lv_act.
563563
564564 ls_data-flag = abap_true .
565- ls_data-char = '"TEST\"/C:\temp' .
565+ ls_data-char = '"TEST\"/C:\temp\ ' .
566566 ls_data-numc = 12345678 .
567567 ls_data-string = 'ABCDEFG' .
568568 ls_data-xstring = ls_data-string.
@@ -609,7 +609,7 @@ CLASS abap_unit_testclass IMPLEMENTATION.
609609
610610 CLEAR ls_data-guid.
611611
612- CONCATENATE `{"FLAG":true,"CHAR":"\"TEST\\\"/C:\\temp","NUMC":12345678,"STRING":"ABCDEFG","XSTRING":"q83v","INTEGER":42,"FLOAT":3.1415926535897900E+00,`
612+ CONCATENATE `{"FLAG":true,"CHAR":"\"TEST\\\"/C:\\temp\\ ","NUMC":12345678,"STRING":"ABCDEFG","XSTRING":"q83v","INTEGER":42,"FLOAT":3.1415926535897900E+00,`
613613 `"PACKED":3.141593,"HEX":"AAAAAAAAOt5osQ==","GUID":"","TSL":20151002134450.5545900,"TSL2":20191227160050.4540000,"TSL3":20191227160050.4540000,"TS":20160708123456,"DATE":"2016-07-08","TIME":"12:34:56","DATE_I":"","TIME_I":""}`
614614 INTO lv_exp.
615615 lv_act = serialize( data = ls_data ).
@@ -619,7 +619,7 @@ CLASS abap_unit_testclass IMPLEMENTATION.
619619 deserialize( EXPORTING json = lv_act CHANGING data = ls_data2 ).
620620 cl_aunit_assert=>assert_equals( act = ls_data2 exp = ls_data msg = 'Deserialization of data types fails' ).
621621
622- CONCATENATE `{"FLAG":true,"CHAR":"\"TEST\\\"/C:\\temp","NUMC":12345678,"STRING":"ABCDEFG","XSTRING":"ABCDEF","INTEGER":42,"FLOAT":3.1415926535897900E+00,`
622+ CONCATENATE `{"FLAG":true,"CHAR":"\"TEST\\\"/C:\\temp\\ ","NUMC":12345678,"STRING":"ABCDEFG","XSTRING":"ABCDEF","INTEGER":42,"FLOAT":3.1415926535897900E+00,`
623623 `"PACKED":3.141593,"HEX":"0000000000003ADE68B1","GUID":"","TSL":20151002134450.5545900,"TSL2":20191227160050.4540000,"TSL3":20191227160050.4540000,"TS":20160708123456,"DATE":"2016-07-08","TIME":"12:34:56","DATE_I":"","TIME_I":""}`
624624 INTO lv_exp.
625625 lv_act = serialize( data = ls_data hex_as_base64 = abap_false ).
@@ -629,7 +629,7 @@ CLASS abap_unit_testclass IMPLEMENTATION.
629629 deserialize( EXPORTING json = lv_act hex_as_base64 = abap_false CHANGING data = ls_data2 ).
630630 cl_aunit_assert=>assert_equals( act = ls_data2 exp = ls_data msg = 'Deserialization of hex without base64 fails' ).
631631
632- CONCATENATE `{"FLAG":true,"CHAR":"\"TEST\\\"/C:\\temp","NUMC":12345678,"STRING":"ABCDEFG","XSTRING":"q83v","INTEGER":42,"FLOAT":3.1415926535897900E+00,`
632+ CONCATENATE `{"FLAG":true,"CHAR":"\"TEST\\\"/C:\\temp\\ ","NUMC":12345678,"STRING":"ABCDEFG","XSTRING":"q83v","INTEGER":42,"FLOAT":3.1415926535897900E+00,`
633633 `"PACKED":3.141593,"HEX":"AAAAAAAAOt5osQ==","GUID":"","TSL":"2015-10-02T13:44:50.5545900Z","TSL2":"2019-12-27T16:00:50.4540000Z","TSL3":"2019-12-27T16:00:50.4540000Z","TS":"2016-07-08T12:34:56Z","DATE":"2016-07-08","TIME":"12:34:56",`
634634 `"DATE_I":"","TIME_I":""}`
635635 INTO lv_exp.
@@ -640,23 +640,23 @@ CLASS abap_unit_testclass IMPLEMENTATION.
640640 deserialize( EXPORTING json = lv_act CHANGING data = ls_data2 ).
641641 cl_aunit_assert=>assert_equals( act = ls_data2 exp = ls_data msg = 'Deserialization of timestamp in ISO8601 fails' ).
642642
643- CONCATENATE `{"FLAG":true,"CHAR":"\"TEST\\\"\/C:\\temp","NUMC":12345678,"STRING":"ABCDEFG","XSTRING":"q83v","INTEGER":42,"FLOAT":3.1415926535897900E+00,`
643+ CONCATENATE `{"FLAG":true,"CHAR":"\"TEST\\\"\/C:\\temp\\ ","NUMC":12345678,"STRING":"ABCDEFG","XSTRING":"q83v","INTEGER":42,"FLOAT":3.1415926535897900E+00,`
644644 `"PACKED":3.141593,"HEX":"AAAAAAAAOt5osQ==","GUID":"","TSL":"2015-10-02T13:44:50.5545900Z","TSL2":"2019-12-27T16:00:50.4540000Z","TSL3":"20191227160050.4540000","TS":"2016-07-08T12:34:56Z","DATE":"2016-07-08","TIME":"12:34:56",`
645645 `"DATE_I":"","TIME_I":""}` INTO lv_act.
646646
647647 deserialize( EXPORTING json = lv_act CHANGING data = ls_data2 ).
648648 cl_aunit_assert=>assert_equals( act = ls_data2 exp = ls_data msg = 'Deserialization of redunant escapment fails' ).
649649
650650 " https://blogs.sap.com/2017/01/05/date-and-time-in-sap-gateway-foundation/
651- CONCATENATE `{"FLAG":true,"CHAR":"\"TEST\\\"/C:\\temp","NUMC":12345678,"STRING":"ABCDEFG","XSTRING":"q83v","INTEGER":42,"FLOAT":3.1415926535897900E+00,`
651+ CONCATENATE `{"FLAG":true,"CHAR":"\"TEST\\\"/C:\\temp\\ ","NUMC":12345678,"STRING":"ABCDEFG","XSTRING":"q83v","INTEGER":42,"FLOAT":3.1415926535897900E+00,`
652652 `"PACKED":3.141593,"HEX":"AAAAAAAAOt5osQ==","GUID":"","TSL":"2015-10-02T13:44:50.5545900Z","TSL2":"\/Date(1577462450454)\/","TSL3":"\/Date(1577462450454)\/","TS":"\/Date(1467981296000)\/","DATE":"2016-07-08","TIME":"12:34:56",`
653653 `"DATE_I":"","TIME_I":""}` INTO lv_act.
654654
655655 deserialize( EXPORTING json = lv_act CHANGING data = ls_data2 ).
656656 cl_aunit_assert=>assert_equals( act = ls_data2 exp = ls_data msg = 'Deserialization of timestamp in Edm.DateTime fails' ).
657657
658658 " https://blogs.sap.com/2017/01/05/date-and-time-in-sap-gateway-foundation/
659- CONCATENATE `{"FLAG":true,"CHAR":"\"TEST\\\"/C:\\temp","NUMC":12345678,"STRING":"ABCDEFG","XSTRING":"q83v","INTEGER":42,"FLOAT":3.1415926535897900E+00,`
659+ CONCATENATE `{"FLAG":true,"CHAR":"\"TEST\\\"/C:\\temp\\ ","NUMC":12345678,"STRING":"ABCDEFG","XSTRING":"q83v","INTEGER":42,"FLOAT":3.1415926535897900E+00,`
660660 `"PACKED":3.141593,"HEX":"AAAAAAAAOt5osQ==","GUID":"","TSL":"2015-10-02T13:44:50.5545900Z","TSL2":"\/Date(1577462450454)\/","TSL3":"\/Date(1577462450454)\/","TS":"\/Date(1467981296000)\/","DATE":"2016-07-08","TIME":"PT12H34M56S",`
661661 `"DATE_I":"","TIME_I":""}` INTO lv_act.
662662
@@ -701,6 +701,12 @@ CLASS abap_unit_testclass IMPLEMENTATION.
701701 deserialize( EXPORTING json = lv_act CHANGING data = lv_act_d ).
702702 cl_aunit_assert=>assert_equals( act = lv_act_d exp = '20170101' msg = 'Deserialization of date field in format 20170101 fails' ).
703703
704+ CONCATENATE '"' cl_abap_char_utilities=>cr_lf 'DATA(txt) = |Test_2\n|. "with nl' '"' cl_abap_char_utilities=>cr_lf INTO lv_exp.
705+
706+ lv_act = serialize( data = lv_exp ).
707+ deserialize( EXPORTING json = lv_act CHANGING data = lv_act ).
708+ cl_aunit_assert=>assert_equals( act = lv_act exp = lv_exp msg = 'Deserialization and serialization of complex escapment fails' ).
709+
704710 ENDMETHOD . "serialize_types
705711
706712 METHOD serialize_associative_array .
0 commit comments