You are here

function views_json_query_plugin_query_json::parse_row in Views JSON Query 7

Parse row.

A recursive function to flatten the json object. Example: {person:{name:{first_name:"John", last_name:"Doe"}}} becomes: $row->person/name/first_name = "John", $row->person/name/last_name = "Doe"

1 call to views_json_query_plugin_query_json::parse_row()
views_json_query_plugin_query_json::parse in ./views_json_query_plugin_query_json.inc
Parse.

File

./views_json_query_plugin_query_json.inc, line 357
Query plugin for views_json_query.

Class

views_json_query_plugin_query_json
@file Query plugin for views_json_query.

Code

function parse_row($parent_key, $parent_row, &$row) {
  $props = get_object_vars($parent_row);
  foreach ($props as $key => $value) {
    if (is_object($value)) {
      unset($row->{$key});
      $this
        ->parse_row(is_null($parent_key) ? $key : $parent_key . '/' . $key, $value, $row);
    }
    else {
      if ($parent_key) {
        $new_key = $parent_key . '/' . $key;
        $row->{$new_key} = $value;
      }
      else {
        $row->{$key} = $value;
      }
    }
  }
  return $row;
}