retrieving external api data and updating existing custom post

Use the ACF field name, not the field key. This works:

update_field('forecast_link', $json_data['properties']['forecast'], $post_id);

update_post_meta($post_id, 'forecast_link', $json_data['properties']['forecast']);

Use array keys to access nested data as needed.

Reference (ACF Docs):
https://www.advancedcustomfields.com/resources/update_field/