Распространение кросс-платформенных пакетов python для двоичного кода, которые могут выполняться с помощью среды выполнения python?

JSON (JavaScript Object Notation) - это легкий формат, который используется для обмена данными. Он основан на подмножестве языка JavaScript (способ создания объектов в JavaScript). Поскольку указан в MDN , некоторый JavaScript не является JSON, а некоторый JSON не является JavaScript.

Примером того, где это используется, являются ответы веб-служб. В «старые» дни веб-службы использовали XML в качестве основного формата данных для передачи обратных данных, но с появлением JSON ( Формат JSON указан в RFC 4627 Дугласом Крокфордом ), это был предпочтительный формат, потому что он намного более легкий

. Вы можете найти намного больше информации на официальном веб-сайте J2ON .

JSON построен на двух структурах:

  • Коллекция пар имя / значение. На разных языках это реализуется как объект, запись, структура, словарь, хэш-таблица, список клавиш или ассоциативный массив.
  • Упорядоченный список значений. В большинстве языков это реализуется как массив, вектор, список или последовательность.

Структура JSON

Ниже приведен пример данных JSON:

{
     "firstName": "John",
     "lastName": "Smith",
     "address": {
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "postalCode": 10021
     },
     "phoneNumbers": [
         "212 555-1234",
         "646 555-4567"
     ]
 }

JSON в JavaScript

JSON (в Javascript) - это строка!

Люди часто предполагают, что все объекты Javascript являются JSON и что JSON является Объект Javascript. Это неверно.

В Javascript var x = {x:y} не JSON, это объект Javascript. Эти два не то же самое. Эквивалент JSON (представленный на языке Javascript) будет var x = '{"x":"y"}'. x является объектом типа string, а не объектом в его собственном праве. Чтобы превратить это в полноценный объект Javascript, вы должны сначала его проанализировать, var x = JSON.parse('{"x":"y"}');, x теперь является объектом, но это больше не JSON.

См. Объект Javascript Vs JSON


При работе с JSON и JavaScript у вас может возникнуть соблазн использовать функцию eval для оценки результата, возвращаемого в обратном вызове, но это не предлагается, поскольку есть два символа ( U + 2028 & amp; U + 2029), действительный в JSON, но не в JavaScript (подробнее об этом здесь ).

Поэтому необходимо всегда использовать скрипт Крокфорда, который проверяет для действительного JSON перед его оценкой. Ссылка на объяснение скрипта найдена здесь здесь , и вот прямая ссылка в файл js. Каждый главный браузер имеет свою собственную реализацию .

Пример использования парсера JSON (с json из приведенного выше фрагмента кода):

//The callback function that will be executed once data is received from the server
var callback = function (result) {
    var johnny = JSON.parse(result);
    //Now, the variable 'johnny' is an object that contains all of the properties 
    //from the above code snippet (the json example)
    alert(johnny.firstName + ' ' + johnny.lastName); //Will alert 'John Smith'
};

Парсер JSON также предлагает еще один очень полезный метод stringify. Этот метод принимает объект JavaScript как параметр и выводит строку с форматом JSON. Это полезно, когда вы хотите отправить данные обратно на сервер:

var anObject = {name: "Andreas", surname : "Grech", age : 20};
var jsonFormat = JSON.stringify(anObject);
//The above method will output this: {"name":"Andreas","surname":"Grech","age":20}

Вышеуказанные два метода (parse и stringify) также принимают второй параметр , которая является функцией, которая будет вызываться для каждого ключа и значения на каждом уровне конечного результата, и каждое значение будет заменено результатом вашей введенной функции. (Подробнее об этом здесь )

Btw, для всех вас, кто думает, что JSON предназначен только для JavaScript, посмотрите этот пост , который объясняет и подтверждает


Ссылки

0
задан ccpizza 13 July 2018 в 08:57
поделиться