DE EN EN (Google)

Object Format standard_extended

Attention: this feature is only available in fylr. It is not available in easydb5!

The standard_extended format for objects provides the object data in a fixed structure. It can be displayed by using a generic parser without any knowledge about the database schema.

System fields

The standard_extended format is an extension of an object in standard format, that only adds new fields without changing anything else in the object compared to other formats.

The following fields are additionaly included in this format and contain translations for the names of system fields:

All other system fields are available as well. These field names are always fix.

List of values

All object data is in a list _values, where each list element has the following structure:

text

A string that can be displayed as is.

Example:

{
  "api_name": "reference",
  "display_name": {
    "de-DE": "Referenz",
    "en-US": "Reference"
  },
  "type": "text",
  "text": "Ref 1"
}

text_loca

An object with data in multiple languages.

Example:

{
  "api_name": "name",
  "display_name": {
    "und": "name"
  },
  "type": "text_loca",
  "text_loca": {
    "de-DE": "Deutscher Text",
    "en-US": "English Text"
  }
}

number

An object that contains a numeric value in integer or float format:

Example:

{
  "api_name": "currency",
  "display_name": {
    "de-DE": "Währung",
    "en-US": "Currency"
  },
  "type": "number",
  "number": {
    "number": 2.57,
    "print": "2,57"
  }
}

bool

true / false, can be displayed as is or be parsed.

Example:

{
  "api_name": "yes_no",
  "display_name": {
    "de-DE": "Ja / Nein",
    "en-US": "Yes / No"
  },
  "type": "bool",
  "bool": true
}

date

An object that contains data of a timestamp (date and time), using the following fields:

Example:

{
  "api_name": "date",
  "display_name": {
    "de-DE": "Datum",
    "en-US": "Date"
  },
  "type": "date",
  "date": {
    "from": "2022-02-12T00:00:00Z",
    "to": "2022-02-12T23:59:59Z",
    "print": "2022-02-12"
  }
}

The values from and to do not define a date range, but are used to define the granularity of the date.

{
  "from": "2021-12-01T00:00:00Z",
  "to": "2021-12-31T23:59:59Z"
}

would be used for the whole month of december 2021, without specifying a day. The resulting print value would be 2021-12.

date_range

An object that contains data of a date range following fields:

Example:

{
  "api_name": "daterange",
  "display_name": {
    "de-DE": "Datumsbereich",
    "en-US": "Date Range"
  },
  "type": "date_range",
  "date_range": {
    "from": "2009-01-01T00:00:00Z",
    "to": "2019-12-31T23:59:59Z",
    "print": {
      "und": "2009 - 2019"
    }
  }
}

custom

A complex object that contains data of a custom data type field:

Example:

{
  "api_name": "custom",
  "display_name": {
    "und": "Custom"
  },
  "type": "custom",
  "custom": {
    "_standard": {
      "de-DE": "Custom Datentyp",
      "en-US": "Custom Data Type"
    },
    "_values": [
      {
        "api_name": "locafield",
        "display_name": {
          "und": "locafield"
        },
        "text_loca": {
          "de-DE": "loca DE",
          "en-US": "loca US"
        },
        "type": "text_loca"
      },
      [...]
    ]
  }
}

file

An object with data about a linked file, includes file information, urls and technical metadata.

To download / display / embed the image, the provided url can be used.

Example:

{
  "api_name": "file",
  "display_name": {
    "de-DE": "Datei",
    "en-US": "File"
  },
  "type": "file",
  "file": {
    "technical_metadata": {
      "extension": "jpg",
      [...]
    },
    "versions": {
      "original": {
        "url": "http://...",
        [...]
      },
      "preview": {
        "url": "http://...",
        [...]
      },
      [...]
    },
    [...]
  }
}

linked_object

An object with information about a linked object (in standard format)

Example:

{
  "api_name": "link_keyword",
  "display_name": {
    "de-DE": "Schlagwort",
    "en-US": "Keyword"
  },
  "type": "linked_object",
  "linked_object": {
    "_mask": "keywords__all_fields",
    "_mask_display_name": {
        "und": "keywords__all_fields"
    },
    "_objecttype": "keyword",
    "_objecttype_display_name": {
        "und": "Keyword"
    },
    "_standard": {
      [...]
    },
    "_system_object_id": 6,
    "keyword": {
      "_id": 3,
      "_version": 1,
      [...]
    },
    [...]
  }
}

nested

Nested tables are lists of lists of values. The outer list contains multiple entries in the nested table. The inner list contains rows in the nested table entry and has the same structure as _values in the top level object. Nested tables can be parsed using the same parsing algorithm and applying it in a recursive way.

Example:

{
  "api_name": "_nested:object__techniques",
  "display_name": {
      "de-DE": "Techniken",
      "en-US": "Techniques"
  },
  "type": "nested",
  "nested": [
    [
      {
        "api_name": "remark",
        "display_name": {
          "und": "remark"
        },
        "type": "text",
        "text": "Test Keyword"
      },
      {
        "api_name": "link_keyword",
        "display_name": {
          "de-DE": "Schlagwort",
          "en-US": "Keyword"
        },
        "type": "linked_object",
        "linked_object": {
          "_mask": "keywords__all_fields",
          "_mask_display_name": {
            "und": "keywords__all_fields"
          },
          "_objecttype": "keyword",
          "_objecttype_display_name": {
            "und": "Keyword"
          },
          "_standard": {
            [...]
          },
          "_system_object_id": 6,
          "keyword": {
            "_id": 3,
            "_version": 1,
            [...]
          }
        }
      },
      [...]
    ],
    [
      [...]
    ]
  ]
}

reverse_nested

Reverse nested tables are lists of reverse linked objects, each entry is an object which only contains a sub set of the system fields and _values.

Most important difference is that _id and _version are not included in the sub object for the object, but are on top level.

Example:

{
  "api_name": "_reverse_nested:images:lk_nested_id",
  "display_name": {
    "de-DE": "Revers verlinkt: Bilder",
    "en-US": "Reverse nested: Images"
  },
  "type": "reverse_nested",
  "reverse_nested": [
    {
      "_objecttype": "images",
      "_objecttype_display_name": {
        "en-US": "Images",
        "de-DE": "Bilder"
      },
      "_id": 1,
      "_global_object_id": "5@...",
      "_system_object_id": 5,
      "_version": 1,
      "_values": [
        [...]
      ]
    },
    [...]
  ]
}

Multilanguage values

If a value is available in multiple langauges, the value is an object with a simple key-value-structure.

Depending on the configured languages, there can be multiple different language codes as keys in this object. The value for each key is the translation in this language. If the objects are to be rendered in a specific language, this object can be filtered for the language. If the value is not language specific, it is included at the key und (for undefined). This value can also be used as a fallback language.