Ajax通信で2次元配列のデータをを送信し、取得する

ajax通信で、フィールドデータから複数データを受けるためのコードを書きました。

サーバー側

今回は、施設の場所や住所、それ以外にも複数の情報を複数個送信します。

function return_location(){    //ajax通信で呼び出される関数名です
    $args=array(
        'post_type'=>'post',   //post_typeをpostにすることで全ての記事を取得できます
        'posts_per_page' => 50, //これは、この通信で取得する記事の数です
    );
    $wp_q = new WP_Query($args);
    $cnt=0;
    $locations_dataset= array();
    while($wp_q->have_posts()){
        $wp_q->the_post();
        $loc_name = $wp_q->post->location_name;  //ここは、それぞれのフィールドのキーの値を使います。
        $site = $wp_q->post->location;            //$wp_q->post->key とすればその値を取得できます。
        $url = $wp_q->post->url;
        $tell = $wp_q->post->tell;
        $lat = $wp_q->post->lat;
        $lng = $wp_q->post->lng;
        $loc_dataset = array(
            $loc_name,
            $site,
            $url,
            $tell,
            $lat,
            $lng,
        );
        $location_dataset[$cnt]=$loc_dataset;
        $cnt++;
    }
    echo json_encode($location_dataset,JSON_UNESCAPED_UNICODE); //複数データを受け取らせるために、json形式にする必要があります。
    die();
}

クライアント側

jQuery(function($){
      $.ajax({
        type: 'POST',
        url: wp_url ,   //ここはadmin-ajax.phpへのパスを
        data: {
          action: 'return_location'
        },
        crossDomain: true,
        success: function(location_datasets){
          let json_loc  = eval(location_datasets);         //json形式になっているので、evalします。
          Object.keys(json_loc).forEach(function(keys){    //json_loc.foreach()はエラーとなります
           /*
           ここでそれぞれの処理を記述

       */
          })
        },
        error: function(response){                //こちらは失敗処理です
          console.log("error text "+response);
        }
      })
    })

こうすることで、2次元配列でもデータを受け取ることが出来ます。