Spec-Zone.ru › Tcllib

json

ИМЯ

json — парсер JSON

Содержание

  • Содержание

  • Краткое описание

  • Описание

  • КОМАНДЫ

  • ПРИМЕРЫ

  • СВЯЗАННЫЕ ПАКЕТЫ

  • Ошибки, идеи, отзывы

  • Категория

  • Авторские права

КРАТКОЕ ОПИСАНИЕ

package require Tcl 8.5 9
package require json ?1.3.6?

::json::json2dict txt
::json::many-json2dict txt ?max?

ОПИСАНИЕ

Пакет json предоставляет простую библиотеку только на Tcl для разбора формата обмена данными JSON http://www.json.org/, определённого в RFC 4627 http://www.ietf.org/rfc/rfc4627.txt. Разбор JSON неоднозначен, поскольку JSON содержит информацию о типах, которая не сохраняется при преобразовании в Tcl. Пакет json возвращает данные в виде Tcl-словаря dict. Для использования требуется пакет dict или Tcl 8.5.

КОМАНДЫ

  • ::json::json2dict txt

    Разбирает текст txt в формате JSON в словарь Tcl и возвращает полученное значение.

    Если txt содержит несколько сущностей JSON, возвращается только первая.

  • ::json::many-json2dict txt ?max?

    Разбирает текст txt в формате JSON, содержащий несколько сущностей JSON, в список словарей и возвращает этот список.

    Если указано значение max, из txt извлекается ровно столько сущностей. По умолчанию команда пытается извлечь все сущности без ограничений. Значение «max == 0» не имеет смысла и приведёт к ошибке команды.

ПРИМЕРЫ

Пример преобразования массива JSON в Tcl. Массив JSON возвращается как один элемент с несколькими значениями.

[
    {
       "precision": "zip",
       "Latitude":  37.7668,
       "Longitude": -122.3959,
       "Address":   "",
       "City":      "SAN FRANCISCO",
       "State":     "CA",
       "Zip":       "94107",
       "Country":   "US"
    },
    {
       "precision": "zip",
       "Latitude":  37.371991,
       "Longitude": -122.026020,
       "Address":   "",
       "City":      "SUNNYVALE",
       "State":     "CA",
       "Zip":       "94085",
       "Country":   "US"
    }
]
=>
{Country US Latitude 37.7668 precision zip State CA City {SAN FRANCISCO} Address {} Zip 94107 Longitude -122.3959} {Country US Latitude 37.371991 precision zip State CA City SUNNYVALE Address {} Zip 94085 Longitude -122.026020}

Пример преобразования объекта JSON в Tcl. Объект JSON возвращается как список из нескольких элементов (словарь).

{
    "Image": {
        "Width":  800,
        "Height": 600,
        "Title":  "View from 15th Floor",
        "Thumbnail": {
            "Url":    "http://www.example.com/image/481989943",
            "Height": 125,
            "Width":  "100"
        },
        "IDs": [116, 943, 234, 38793]
    }
}
=>
Image {IDs {116 943 234 38793} Thumbnail {Width 100 Height 125 Url http://www.example.com/image/481989943} Width 800 Height 600 Title {View from 15th Floor}}

СВЯЗАННЫЕ ПАКЕТЫ

Чтобы записывать JSON, а не разбирать его, см. пакет json::write.

Ошибки, идеи, отзывы

В этом документе и описываемом в нём пакете неизбежно могут содержаться ошибки и другие проблемы. Пожалуйста, сообщайте о них в категории json в системе отслеживания ошибок Tcllib. Также сообщайте о любых идеях по улучшению пакета и/или документации.

Предлагая изменения кода, пожалуйста, прикладывайте унифицированные diff-файлы, то есть результат выполнения diff -u.

Обратите также внимание, что настоятельно предпочтительнее прикладывать вложения, а не вставлять патчи в текст. Вложения можно добавить, перейдя к форме Редактировать заявки сразу после её создания и нажав крайнюю левую кнопку на вторичной панели навигации.

КАТЕГОРИЯ

Программирование CGI

АВТОРСКИЕ ПРАВА

Авторское право © 2006 ActiveState Software Inc.
Авторское право © 2009 Thomas Maeder, Glue Software Engineering AG

Licensed under the BSD license
https://core.tcl-lang.org/tcllib/doc/trunk/embedded/md/tcllib/files/modules/json/json.md

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API