name–value pair
{{Short description|Data representation method in computing systems}}
{{more references|date=December 2009}}
File:Sample web form.png with name-value pairs]]
A name–value pair, also called an attribute–value pair, key–value pair, or field–value pair, is a fundamental data representation in computing 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
Examples of use
Some of the applications where information is represented as name-value pairs are:
- E-mail, in RFC 2822 headers{{Cite web|url=https://tools.ietf.org/html/rfc2822|title=Internet Message Format|last=Peter W. Resnick|website=tools.ietf.org|language=en|access-date=2018-10-02}}
- Query strings, in URLs
- Optional elements in network protocols, such as IP, where they often appear as TLV (type–length–value) triples
- Bibliographic information, as in BibTeX and Dublin Core metadata
- Element attributes in SGML, HTML and XML
- Key–value databases
- OpenStreetMap map data
- Windows registry entries
- Environment variables
Use in computer languages
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.{{Cite web|url=https://www.w3schools.com/js/js_json_objects.asp|title=JSON Objects|website=www.w3schools.com|language=en-US|access-date=2018-10-02}}
Other data representations are restricted to one level of nesting, such as INI file's section/name/value.