A nameâÂÂvalue pair, also known as an attributeâÂÂvalue pair, keyâÂÂvalue pair, or fieldâÂÂvalue pair, is a fundamental data representation in computer systems and applications. Designers often desire an open-ended data structure that allows for future extension without modifying existing code or data. In such situations, all or part of the data model may be expressed as a collection of 2-tuples in the form <code><attribute name, value></code> with each element being an attributeâÂÂvalue pair. Depending on the particular application and the implementation chosen by programmers, attribute names may or may not be unique.
Common examples include JSON objects such as database records where a column maps to a stored value (e.g., â ), HTTP headers like Content-Type: , and configuration files with settings expressed as .
Some of the applications where information is represented as name-value pairs are:
Some computer languages implement nameâÂÂvalue pairs, or more frequently collections of attributeâÂÂvalue pairs, as standard language features. Most of these implement the general model of an associative array: an unordered list of unique attributes with associated values. As a result, they are not fully general; they cannot be used, for example, to implement electronic mail headers (which are ordered and non-unique).
In some applications, a nameâÂÂvalue pair has a value that contains a nested collection of attributeâÂÂvalue pairs. Some data serialization formats such as JSON support arbitrarily deep nesting. Other data representations are restricted to one level of nesting, such as INI file's section/name/value.