All v4 queries return data using a standard top level JSON object the follows the following format:
{ "time" : "2013-10-24T10:13:29-05:00", "type" : "masterRoute", "feedVersion" : "4.0", "fromCache" : true, "data" : [...] }
Here the "data" element contains an array with the results of the query, the type of objects contained in the data array is indicated by the "type" element, in this case the data array would contain a list of "masterRoute" objects.
The "time" field indicates the time on the feed server that the response was generated in ISO 8601 format.
The "feedVersion" field indicates the feed version that generated the response.
There are also 2 fields which are present on queries that take any parameters: "subject" and "predicate". These two fields contain information about what real world thing the query's data relates to.
The "predicate" field contains the list of fields used to filter or augment the query, and the "subject" field contains the values for each field in the predicate.
An example showing an ETA query with subject and predicate is below:
{ "data" : [...], "predicate": [ "stopId", "adhearanceEnabled", "rowCount", "preWindow", "timeHorizon" ], "subject": { "adhearanceEnabled": true, "preWindow": 2, "rowCount": 20, "stopId": "1001 - TERMINAL & TERMINAL", "timeHorizon": 120 }, "time": "2013-10-24T11:24:54-05:00", "type": "eta", "version": "4.0" "fromCache" : true, }