Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Specify the Output Format for Operational Information Requests in a NETCONF Session

In a NETCONF session, to request information about a Junos device, a client application emits an <rpc> element that encloses a Junos XML request tag element. To request that the NETCONF server return the output in a specific format, the client application includes the optional format attribute in the opening operational request tag. The application can request output in formatted ASCII text, JavaScript Object Notation (JSON), or XML-tagged format. The syntax is as follows:

Table 1 describes the available formats. Minified formats remove characters that are not required for computer processing, for example, spaces, tabs, and newlines. Minified formats decrease the size of the data, and as a result, can reduce transport costs and data delivery and processing times.

Table 1: Operational RPC Output Formats
format Attribute Value Description
ascii Formatted ASCII text
json JavaScript Object Notation (JSON)
json-minified JSON format with unnecessary spaces, tabs, and newlines removed
text Formatted ASCII text
xml Junos XML-tagged format
xml-minified Junos XML-tagged format with unnecessary spaces, tabs, and newlines removed

XML Format

By default, the NETCONF server returns operational information in XML format. If the format attribute is set to xml or if the format attribute is omitted, the server returns the response in XML. The following example requests information for the ge-0/3/0 interface and omits the format attribute.

The NETCONF server returns the information in XML, which is identical to the output displayed in the CLI when you append the | display xml filter to the operational mode command.

Operational command RPCs also support returning XML output in minified format, which omits unnecessary spaces, tabs, and newlines. To request minified XML output in supported releases, include the format="xml-minified" attribute in the opening request tag. For example:

The NETCONF server returns the information in minified XML format.

ASCII Format

To request that the NETCONF server return operational information as formatted ASCII text instead of tagging it with Junos XML tag elements, the client application includes the format="text" or format="ascii" attribute in the opening request tag.

When the client application includes the format="text" or format="ascii" attribute in the request tag, the NETCONF server formats the reply as ASCII text and encloses it in an <output> tag element. The format="text" and format="ascii" attributes produce identical output.

The following example shows the equivalent operational mode command executed in the CLI:

The formatted ASCII text returned by the NETCONF server is identical to the CLI output except in cases where the output includes disallowed characters such as '<' (less-than sign), '>' (greater-than sign), and '&' (ampersand). The NETCONF server substitutes these characters with the equivalent predefined entity reference of '&lt;', '&gt;', and '&amp;' respectively.

If the Junos XML API does not define a response tag element for the type of output requested by a client application, the NETCONF server returns the reply as formatted ASCII text enclosed in an <output> tag element, even if XML-tagged output is requested.

Note:

The content and formatting of data within an <output> tag element are subject to change, so client applications must not depend on them.

JSON Format

A client application can request operational and configuration data in JSON format. To request that the NETCONF server return operational information in JSON format, the client application includes the format="json" attribute in the opening request tag.

When the client application includes the format="json" attribute in the request tag, the NETCONF server formats the reply using JSON.

By default, Junos devices emit JSON-formatted state data in non-compact format, which emits all objects as JSON arrays. In Junos OS Release 24.2 and earlier and Junos OS Evolved Release 24.2 and earlier, Junos devices support emitting the device’s operational state in compact JSON format, in which only objects that have multiple values are emitted as JSON arrays. To configure the device to emit compact JSON format, configure the compact statement at the [edit system export-format state-data json] hierarchy level.

NETCONF clients can also request operational command RPC output in minified JSON format, which omits unnecessary spaces, tabs, and newlines. To request minified JSON output in supported releases, include the format="json-minified" attribute in the opening request tag. For example:

The NETCONF server returns the information in minified JSON format.

Change History Table

Feature support is determined by the platform and release you are using. Use Feature Explorer to determine if a feature is supported on your platform.

Release
Description
24.4R1 & 24.4R1-EVO
Starting in Junos OS Release 24.4R1 and Junos OS Evolved Release 24.4R1, we've deprecated the compact statement at the [edit system export-format state-data json] hierarchy level.
17.3R1
Starting in Junos OS Release 17.3R1, devices running Junos OS support emitting the device’s operational state in compact JSON format, in which only objects that have multiple values are emitted as JSON arrays.
14.2
Starting in Junos OS Release 14.2, you can display operational and configuration data in JSON format.