ABAP: использовать «string» или «xstring» для хранения JSON? - PullRequest
0 голосов
/ 29 апреля 2019

Я создаю JSON с методами abap.

Например:

DATA(lo_json_writer) = cl_sxml_string_writer=>create( type = if_sxml=>co_xt_json ).
CALL TRANSFORMATION id
        SOURCE result = result
        RESULT XML lo_json_writer.

cl_abap_conv_in_ce=>create( )->convert(
        EXPORTING
          input = lo_json_writer->get_output( )
        IMPORTING
          data = json ).

Какой тип данных мне следует использовать для json?

Используйте string или xstring?

Ответы [ 2 ]

4 голосов
/ 29 апреля 2019

Нет "хорошего пути".Каждое решение имеет свои преимущества и недостатки.

Если ваши данные содержат в основном латинские символы, то используйте xstring с кодировкой UTF-8, это займет меньше памяти.

  • xstring с кодировкой UTF-8: один байт для общих символов AZ / az / 0-9, два байта для выделенных символов и больше байтов для символов из других языков (китайский и т. Д.).
  • string: два байта на символ (кодировка UCS-2), поскольку все системы ABAP теперь имеют Unicode (ABAP> = 7.50).
2 голосов
/ 29 апреля 2019

Согласно этой записи в блоге (https://blogs.sap.com/2013/01/07/abap-and-json/): "Для хранения данных XML в строках или внутренних таблицах мы рекомендуем использовать байтовые строки или байтовые типы строк". Поэтому я бы использовал xstring.

...