Hola Sijin,
Si deseas utilizar la transformación de pascal a guion bajo, los componentes en la estructura ts_result_payload también deben tener guiones bajos, por ejemplo, sales_order en lugar de salesorder. El componente __metadata necesita un guion bajo adicional debido a una limitación en nuestra implementación, pero supongo que de todos modos no estás interesado en los metadatos. Si ese es el caso, simplemente omite el componente y el resto se analizará correctamente. No creo que el error de tiempo de ejecución que viste en el sistema tenga algo que ver con la transformación json. Por favor, consulta mi código de ejemplo:
METHOD if_oo_adt_classrun~main.
TYPES:
BEGIN OF ts_metadata,
id TYPE string,
uri TYPE string,
type TYPE string,
etag TYPE string,
END OF ts_metadata,
" Si se utiliza la transformación de pascal case a guion bajo, usa guiones bajos en los nombres de los componentes.
BEGIN OF ts_result_payload,
___metadata TYPE ts_metadata,
sales_order TYPE string,
sales_order_type TYPE string,
END OF ts_result_payload,
BEGIN OF ts_a_salesorder_resp,
d TYPE ts_result_payload,
END OF ts_a_salesorder_resp.
DATA ls_a_salesorder_resp TYPE ts_a_salesorder_resp.
DATA(lv_response) = '{' && |\r\n| &&
' "d": {' && |\r\n| &&
' "__metadata": {' && |\r\n| &&
' "id": "someID",' && |\r\n| &&
' "uri": "someURI",' && |\r\n| &&
' "type": "someType",' && |\r\n| &&
' "etag": "someEtag"' && |\r\n| &&
' },' && |\r\n| &&
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019