функция JSON::stringify

Представляет объект в формата JSON

Синтаксис

static
String
JSON.stringify
(Object object)

Передаваемые параметры

Object object

Возвращаемое значение

String

Описание

Метод stringify сериализует объект Object object в формат JSON. Прямое преобразование поддерживают следующие типы данный:

  • Null
  • String
  • num
  • bool
  • List, причем все элементы списка должны поддерживать преобразование в JSON
  • Map, причем все ключи и элементы хеш-таблицы должны поддерживать преобразование в JSON

В случае, если преобразование применяется к объектам других типов, то происходит попытка вызова метода объекта "toJson()", причем результат выполнения метода toJson() обязательно должен принадлежать к одному из выше перечисленных типов, поскольку он будет использоваться в дальнейших преобразованиях, вместо иcходного объекта.

В случае, если объект не поддерживает метод "toJson()", или возвращаемое значение не относится к типам, которые позволяют прямую сериализацибю в JSON, то генерируется исключение типа JsonUnsupportedObjectError.

Во время сериализации данный, исходный объект не должен изменятся внутри метода "toJson()".

Так же, если один и тот же объект, сериализуется несколько раз, то метод stringify может кешировать результаты преобразования, т.е если мы изменилил объект после того, как первый раз его преобразовали в JSON, то в следующий раз эти изменения могут и не отразится на результате сериализации.

Заметки

Примеры использования:


import "dart:json";
import "dart:mirrors";

class testJSON {
  String name;
  String text;

  testJSON(String name, String text) {
    this.name = name;
    this.text = text;
  }

  dynamic toJson() {
    return {
      'name': name,
      'text': text
    };
  }
}

void main() {
  String jsonResult;

  // получим строку '100'
  jsonResult = JSON.stringify(100);
  print(jsonResult);

  // получим строку '0.1'
  jsonResult = JSON.stringify(0.1);
  print(jsonResult);

  // получим строку 'test'
  jsonResult = JSON.stringify('test');
  print(jsonResult);

  // получим строку '["a","b","c"]'
  jsonResult = JSON.stringify(['a','b','c']);
  print(jsonResult);

  // получим строку '{"c":"3","a":"1"}'
  jsonResult = JSON.stringify({"c":"3","a":"1"});
  print(jsonResult);

  // преобразуем объект пользовательского типа в JSON
  // получим строку {"name":"aaaa","text":"bbbb"}
  jsonResult = JSON.stringify(new testJSON('aaaa', 'bbbb'));
  print(jsonResult);

  // генерирует исключение типа JsonUnsupportedObjectError,
  // потому что класс Date, не поддерживает метод "toJson()"
  jsonResult = JSON.stringify(new Date.now());
}
						

Смотрите также

JSON::parse - Декодирует данные из формата JSON в объект

Официальная документация (английский)