Answer
Legacy layer definition queries will be deprecated at ArcGIS 10.3, in favor of JSON-based layer definition query patterns. Layer definition queries allow applications to filter GIS data from Map Services using the ArcGIS REST API. Layer definition queries are a part of many popular operations such as Export Map, Find and Identify.
Beginning at ArcGIS 10.0, two ways were made available in the ArcGIS REST API to construct a layer definition query. These approaches are best summarized as a JSON-based approach and a non-JSON approach. At 10.3, the non-JSON approach for constructing a layer definition query will be phased out in favor of the JSON-based approach. Both layer definition patterns are demonstrated below. The legacy pattern is shown as a point of reference, so developers can identify potential problems in existing applications and upgrade to the JSON-based approach.
Note:
Applications built with Esri’s Runtime and Web API (JavaScript, Flex and Silverlight) developer products are not affected by this change.
This article identifies the differences in the two approaches for creating layer definition queries. It is highly recommended to upgrade all ArcGIS REST API applications to use the supported JSON-style pattern.
Examples
• The deprecated layer definition query approach showing how to create a map image of California showing counties that have a population greater than 50,000 people (Non-supported beginning at 10.3). Note that in the the Layer Definitions field, the definition query looks like this:
2:(POP2007 > 50000) AND (STATE_NAME = 'California');3:STATE_ABBR = 'CA'
• The layer definition query of the JSON-based approach showing how to create a this same map is as follows. Note that the syntax for the Layer Definitions looks like this:
{"2":"(POP2007 > 50000) AND (STATE_NAME = 'California')","3":"STATE_ABBR = 'CA'"}