Рубрики
Без рубрики

Примеры объектов JSON: STRIFIFY и методы анализа объяснены

Метод JSON StringifyTheThe json.Stringify () Преобразует значение JavaScript JAVAScript JSON на строку совместимой JSON. Какие ценности json-Safe можно задать! Давайте составьте список всех ценностей небезопасных JSON и все, что не в списке, можно считать JSON-Safe. JSON-небезопасные значения: undefinedfunction () {} (ES6 +) объект символа с

Автор оригинала: FreeCodeCamp Community Member.

Json Stringify

Json.stringify () Метод преобразует JSON-Safe Значение JavaScript к строке совместимой JSON.

Какие ценности json-Safe можно задать! Давайте составьте список всех ценностей небезопасных JSON и все, что не в списке, можно считать JSON-Safe.

JSON-небезопасные ценности:

  • неопределенный
  • Функция () {}
  • (ES6 +) Символ
  • Объект с циркулярной ссылкой (ы) в нем

Синтаксис

  JSON.stringify( value [, replacer [, space]])

В его простейшей и наиболее используемой форме:

  JSON.stringify( value )

Параметры

ценность : Значение JavaScript, чтобы быть «строгими».

Заменяющий : (Необязательно) функция или массив, который служит фильтром для свойств объекта значения, который будет включен в строку JSON.

пространство : (Необязательно) числовое или строковое значение для предоставления отступа к строке JSON. Если приведено числовое значение, то, что многие пробелы (до 10) действуют в качестве антеиона на каждом уровне. Если приведено строковое значение, эта строка (до первого 10 Chracter) действует как отступ на каждом уровне.

Тип возврата

Тип возврата метода: строка Отказ

Описание

Значения Safe JSON преобразуются в соответствующую форму JSON String. JSON-небезопасные значения с другой стороны возврата:

  • undefined Если они передаются как значения для метода
  • null Если они передаются как элемент массива
  • Ничего, если пропущено как свойства на объекте
  • бросает ошибку, если его объект с циркулярными ссылками (ы) на нем.
  //JSON-safe values
  JSON.stringify({});                  // '{}'
  JSON.stringify(true);                // 'true'
  JSON.stringify('foo');               // '"foo"'
  JSON.stringify([1, 'false', false]); // '[1,"false",false]'
  JSON.stringify({ x: 5 });            // '{"x":5}'
  JSON.stringify(new Date(2006, 0, 2, 15, 4, 5))  // '"2006-01-02T15:04:05.000Z"'
  
  //JSON-unsafe values passed as values to the method
  JSON.stringify( undefined );					// undefined
  JSON.stringify( function(){} );					// undefined

  //JSON-unsafe values passed as array elements
  JSON.stringify({ x: [10, undefined, function(){}, Symbol('')] });  // '{"x":[10,null,null,null]}' 
 
 //JSON-unsafe values passed as properties on a object
  JSON.stringify({ x: undefined, y: Object, z: Symbol('') });  // '{}'
  
  //JSON-unsafe object with circular reference on it
  var o = { },
    a = {
      b: 42,
      c: o,
      d: function(){}
    };

  // create a circular reference inside `a`
  o.e = a;

  // would throw an error on the circular reference
  // JSON.stringify( a );

Json.stringify (...) ведет себя по-разному, если объект передан на него, имеет Tojson () Метод определен на нем. Возвращаемое значение из Tojson () Метод будет сериализован вместо самого объекта.

Это приходит исключительно удобно, когда объект содержит любые незаконные значения JSON.

   //JSON-unsafe values passed as properties on a object
   var obj = { x: undefined, y: Object, z: Symbol('') };
   
   //JSON.stringify(obj);  logs '{}'
   obj.toJSON = function(){
    return {
      x:"undefined",
      y: "Function",
      z:"Symbol"
    }
   }
   JSON.stringify(obj);  //"{"x":"undefined","y":"Function","z":"Symbol"}"
    
  //JSON-unsafe object with circular reference on it
  var o = { },
    a = {
      b: 42,
      c: o,
      d: function(){}
    };

  // create a circular reference inside `a`
  o.e = a;

  // would throw an error on the circular reference
  // JSON.stringify( a );
  
  // define a custom JSON value serialization
  a.toJSON = function() {
    // only include the `b` property for serialization
    return { b: this.b };
  };

  JSON.stringify( a ); // "{"b":42}"

Замена

Заменяющий Как уже упоминалось ранее, является фильтром, который указывает, какие свойства должны быть включены в строку JSON. Это может быть либо массив или функция. Когда массив заменитель содержит строковые представления только те свойства, которые должны быть включены в строку JSON.

  var foo = {foundation: 'Mozilla', model: 'box', week: 45, transport: 'car', month: 7};
  JSON.stringify(foo, ['week', 'month']);    // '{"week":45,"month":7}', only keep "week" and "month" properties

Если Заменяющий Это функция, она будет вызываться один раз для самого объекта, а затем один раз для каждого свойства в объекте, и каждый раз пропускается два аргумента, ключ и ценность Отказ Пропустить ключ В сериализации undefined должно быть возвращено. В противном случае ценность предоставленные должны быть возвращены. Если кто-то из этих Значения сами объекты, Заменяющий Функция также рекурсивно сериала.

  function replacer(key, value) {
    // Filtering out properties
    if (typeof value === 'string') {
      return undefined;
    }
    return value;
  }

  var foo = {foundation: 'Mozilla', model: 'box', week: 45, transport: 'car', month: 7};
  JSON.stringify(foo, replacer);  // '{"week":45,"month":7}'

Если массив передан Json.stringify () и Заменяющий Возвращает undefined Для любого из его элементов значение элемента заменяется на null Отказ Заменяющий Функции не могут удалять значения из массива.

  function replacer(key, value) {
    // Filtering out properties
    if (typeof value === 'string') {
      return undefined;
    }
    return value;
  }

  var foo = ['Mozilla', 'box', 45, 'car', 7];
  JSON.stringify(foo, replacer);  // "[null,null,45,null,7]"

Космос

пространство Параметр, используемый для отступа, делает результат Json.stringify () красивее.

  var a = {
    b: 42,
    c: "42",
    d: [1,2,3]
  };

  JSON.stringify( a, null, 3 );
  // "{
  //    "b": 42,
  //    "c": "42",
  //    "d": [
  //       1,
  //       2,
  //       3
  //    ]
  // }"

  JSON.stringify( a, null, "-----" );
  // "{
  // -----"b": 42,
  // -----"c": "42",
  // -----"d": [
  // ----------1,
  // ----------2,
  // ----------3
  // -----]
  // }"

JSON PARSE.

Json.parse () Метод определяет строку и построить новый объект, описанный строкой.

Синтаксис:

    JSON.parse(text [, reviver])

Параметры:

текст Строка для анализа как JSON

Reviver (Необязательно) Функция получит ключ и ценность как аргументы. Эта функция может быть использована для преобразования значения результата.

Вот пример того, как использовать Json.parse () :

var data = '{"foo": "bar"}';

console.log(data.foo); // This will print `undefined` since `data` is of type string and has no property named as `foo`

// You can use JSON.parse to create a new JSON object from the given string
var convertedData = JSON.parse(data);

console.log(convertedData.foo); // This will print `bar

Rep.it demo.

Вот пример с Reviver :

var data = '{"value": 5}';

var result = JSON.parse(data, function(key, value) {
    if (typeof value === 'number') {
        return value * 10;
    }
    return value;
});

// Original Data
console.log("Original Data:", data); // This will print Original Data: {"value": 5}
// Result after parsing
console.log("Parsed Result: ", result); // This will print Parsed Result:  { value: 50 }

В приведенном выше примере все числовые значения умножаются на 10Rep.it demo.

Больше информации на JSON:

  • JSON Syntax.
  • Поверните свой веб-сайт в мобильное приложение с 7 линиями JSON