Что такое JSON и зачем использовать его?

Я посмотрел на википедию, посмотрел в нее и прочитал официальную документацию, но до сих пор не понял, что я действительно понимаю, что такое JSON, и зачем я его использую.

Я создавал приложения, используя PHP, MySQL и Javascript / HTML, и если JSON может сделать что-то, чтобы улучшить мою жизнь или улучшить код или улучшить мой интерфейс, тогда я хотел бы узнать об этом. Может ли кто-нибудь дать мне краткое объяснение?

15 Solutions collect form web for “Что такое JSON и зачем использовать его?”

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

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

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

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

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

Структура JSON

Диаграмма объектов JSON

Диаграмма JSON Array

Диаграмма значений JSON

Строчная диаграмма 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 для оценки результата, возвращаемого в обратном вызове, но это не предлагается, поскольку в JSON есть два символа (U + 2028 и U + 2029), но не в JavaScript (подробнее об этом здесь ).

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

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

 //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 ) также принимают второй параметр, который является функцией, которая будет вызываться для каждого ключа и значения на каждом уровне конечного результата, и каждое значение будет заменено результатом вашей введенной функции. (Подробнее об этом здесь )

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


Рекомендации

  • JSON.org
  • Википедия
  • Json через 3 минуты (спасибо mson )
  • Использование JSON с Yahoo! Веб-сервисы (спасибо gljivar )
  • Конвертер JSON в CSV
  • Альтернативный конвертер JSON в CSV
  • JSON Lint (JSON валидатор)

Короче говоря – JSON – это способ сериализации таким образом, что он становится кодом JavaScript. Когда выполняется (с eval или иначе), этот код создает и возвращает объект JavaScript, который содержит данные, которые вы сериализуете. Это доступно, потому что JavaScript допускает следующий синтаксис:

 var MyArray = [ 1, 2, 3, 4]; // MyArray is now an array with 4 elements var MyObject = { 'StringProperty' : 'Value', 'IntProperty' : 12, 'ArrayProperty' : [ 1, 2, 3], 'ObjectProperty' : { 'SubObjectProperty': 'SomeValue' } }; // MyObject is now an object with property values set. 

Вы можете использовать это для нескольких целей. Во-первых, это удобный способ передачи данных с вашего сервера на ваш код JavaScript. Таким образом, это часто используется в AJAX.

Вы также можете использовать его как отдельный механизм сериализации, который проще и занимает меньше места, чем XML. Существует множество библиотек, которые позволяют сериализовать и десериализовать объекты в JSON для различных языков программирования.

Все вышеперечисленные ответы сосредоточены на специфике. Поэтому я попытаюсь объяснить концепцию, чтобы вы могли понять это.

Что такое JSON? – Как я объяснил это моей жене ТМ

Я: «Это в основном способ общения с кем-то в письменной форме … но с правилами.

Жена: да ….?

ME: Давайте возьмем английский как пример: у нас есть правила – полные остановки, запятые, скобки, дефисы, апострофы и т. Д., И все они означают разные вещи. В принципе, мы все согласились с тем, что означает полная остановка (т.е. мы должны остановиться, когда прочтем).

Жена: То есть вы говорите, что JSON – это способ писать по-английски кому-то, но у него есть правила, которые обе стороны согласны?

Я: Именно! Кроме этих правил очень специфичны. На прозаическом английском языке правила довольно рыхлые: как и в случае борьбы с клетками: вы можете делать все, что хотите, за исключением нескольких основ (например, строжка глаза). Например, если бы я хотел рассказать IRS о нашей семье, я мог бы сделать это несколько раз, используя прозаический английский. Обратите внимание на различия во всех отношениях:

Меня:

• Пример 1: В нашей семье 4 человека: вы, я и 2 ребенка.

• Пример 2: Наша семья: вы, я, kid1 и kid2.

• Пример 3: Семья: [вы, я, ребенок1, ребенок2]

• Пример 4: в нашей семье было 4 человека: мама, папа, ребенок1 и ребенок2.

Жена: Хорошо, я получаю картину. Вы можете сказать то же самое много разных способов на английском языке. Вы можете добавить несколько слов здесь и там, несколько запятых здесь и там, и все будут по-прежнему понимать.

Я: Точно. За исключением JSON, правила очень ограничительные. Вы можете общаться только определенным образом. И вы должны следовать этим правилам, чтобы кто-то еще понял это: скобки, запятые в определенных местах.

Жена: Почему бы им просто не использовать простой английский?

Я: Они бы, но помните, что мы имеем дело с компьютерами. Компьютер глуп и не сможет понять предложения. Поэтому мы должны быть действительно конкретными, когда задействованы компьютеры, иначе они запутаются. Кроме того, JSON – довольно эффективный способ общения, поэтому большинство нерелевантных материалов вырезано, что довольно удобно. Если вы хотите сообщить нашу семью, на компьютер, один из способов сделать это:

 { "Family" : ["Me", "Wife", "Kid1", "Kid2"] } 

…… и это в основном JSON. Но помните, вы ДОЛЖНЫ подчиняться правилам грамматики JSON. Если вы нарушаете эти правила, компьютер просто не поймет (т.е. разобрал) то, что вы пишете.

Жена: Итак, как мне написать в Json?

Me: Прочитайте приведенные выше ответы для специфики. Короче говоря, вы вынуждены обмениваться данными с помощью пар ключ-значение и массивов.

Резюме

JSON – это в основном способ передачи данных кому-то, с очень-очень специфическими правилами.

Короче говоря, это запись сценариев для передачи данных. В некотором смысле альтернатива XML, основанная на базовых типах данных, массивах и ассоциативных массивах (пары имени и имени, называемые объектами, потому что это то, что они представляют).

Синтаксис заключается в том, что используется в JavaScript, а сам JSON – «Обозначение объектов JavaScript». Однако он стал портативным и используется и на других языках.

Полезная ссылка для подробностей приведена здесь:

http://secretgeek.net/json_3mins.asp

Формат JSON часто используется для сериализации и передачи структурированных данных по сетевому соединению. Он используется в основном для передачи данных между сервером и веб-приложением, служащим альтернативой XML.

JSON – это обозначение объекта JavaScript. Это гораздо более компактный способ передачи наборов данных по сетевым соединениям по сравнению с XML. Я предлагаю использовать JSON в любых AJAX-подобных приложениях, где XML в противном случае был бы «рекомендуемым» вариантом. Многословие XML добавит к времени загрузки и увеличению потребления полосы пропускания ($$$). Вы можете добиться такого же эффекта с JSON, и его разметка почти исключительно посвящена самим данным, а не базовой структуре.

общий короткий ответ: если вы используете AJAX для выполнения запросов данных, вы можете легко отправлять и возвращать объекты в виде строк JSON. Доступные расширения для поддержки Javascript для вызовов JSON () для всех типов javascript для отправки данных на сервер по запросу AJAX. Ответы AJAX могут возвращать объекты в виде строк JSON, которые могут быть преобразованы в объекты Javascript простым eval-вызовом, например, если функция AJAX someAjaxFunctionCallReturningJson вернулась

 "{ \"FirstName\" : \"Fred\", \"LastName\" : \"Flintstone\" }" 

вы можете написать в Javascript

 var obj = eval("(" + someAjaxFunctionCallReturningJson().value + ")"); alert(obj.FirstName); alert(obj.LastName); 

JSON также может использоваться для полезных сервисов web-сервисов и др., Но это действительно удобно для результатов AJAX.

Что такое JSON?

Обозначение объектов JavaScript (JSON) – это облегченный формат обмена данными, основанный на объектных литералах JavaScript.

Значения JSON могут состоять из:

объекты (коллекции пар имя-значение) массивы (упорядоченные списки значений) строки (в двойных кавычках) числа true, false или null

JSON не зависит от языка.

JSON с PHP?

После PHP версии 5.2.0 расширение JSON декодирует и кодирует функциональные возможности по умолчанию.

Json_encode – возвращает представление JSON значений Json_decode – декодирует строку JSON Json_last_error – возвращает последнюю ошибку.

Синтаксис и правила JSON?

Синтаксис JSON получен из синтаксиса обозначения объекта JavaScript:

Данные находятся в парах имя / значение. Данные разделяются запятыми. Curly braces hold objects. Квадратные скобки содержат массивы

http://www.codingslover.com/2015/05/json-with-php-javascript-and-ajax.html

Пример JSON

Мне нравится JSON в основном потому, что он настолько краток . Для веб-контента, который может быть gzipped, это не обязательно большое дело (следовательно, x html настолько популярен). Но бывают случаи, когда это может быть полезно.

Например, для одного проекта я передавал информацию, которая должна быть сериализована и передана через XMPP . Поскольку большинство серверов ограничивают объем данных, которые вы можете передать в одном сообщении, я счел полезным использовать JSON над очевидной альтернативой XML.

В качестве дополнительного бонуса, если вы знакомы с Python или Javascript, вы уже в значительной степени знаете JSON и можете интерпретировать его без особого обучения.

Разница между JSON и условным синтаксисом будет следующей (в Javascript)

общепринятый

  function Employee(name, Id, Phone, email){ this.name = name; this.Id = Id; this.Phone = Phone; this.email = email; } //access or call it as var Emp = new Employee("mike","123","9373849784","mike.Anderson@office.com"); 

С JSON

если мы используем JSON, мы можем определить по-разному, как

  function Employee(args){ this.name = args.name; this.Id = args.Id; this.Phone = args.Phone; this.email = args.email; } //now access this as... var Emp = new Employee({'name':'Mike', 'Id':'123', 'Phone':'23792747', 'email':'mike.adnersone@office.com'}); 

Важно помнить, что если нам нужно построить class «Сотрудник» или модальный с 100 элементами без метода JSON, мы должны разбирать все при создании classа. Но с JSON мы можем определить объекты inline только при определении нового объекта для classа.

поэтому эта строка ниже – способ делать вещи с JSON (просто простой способ определить вещи)

  var Emp = new Employee({'name':'Mike', 'Id':'123', 'Phone':'23792747', 'email':'mike.adnersone@office.com'}); 

Мы должны сделать проект в колледже, и мы столкнулись с очень большой проблемой, это называется той же самой политикой происхождения. Другие вещи, это делает, что ваш метод XMLHttpRequest из Javascript не может делать запросы к доменам, отличным от домена, на котором находится ваш сайт.

Например, вы не можете сделать запрос на http://www.otherexample.com, если ваш сайт находится на http://www.example.com. JSONRequest позволяет это, но вы получите результат в формате JSON, если этот сайт разрешит это (например, он имеет веб-службу, которая возвращает сообщения в JSON). Это одна из проблем, когда вы можете использовать JSON.

Вот что-то практическое: Yahoo JSON

Это очень просто. JSON обозначает обозначение объекта Java Script. Подумайте об этом в качестве альтернативы использованию XML для передачи данных между программными компонентами.

Например, недавно я написал кучу веб-сервисов, которые вернули JSON, а некоторые разработчики Javascript затем написали код, который вызвал службы, и использовал информацию, возвращенную в этом формате.

JSON (обозначение объекта Javascript) – это легкий формат данных для обмена / передачи данных. Его в ключевой паре значений, как и в JavaScript. Для REST API он широко используется для передачи данных от сервера к клиенту. В настоящее время многие сайты социальных сетей используют это. Хотя я не считаю это столь же надежным, как XML в отношении типов данных. XML имеет очень богатые типы данных и XSD. JSON в этом не хватает.

Для такого же количества строковых данных JSON будет легче сравнивать с XML, поскольку XML имеет все открывающие и закрывающие tags и т. Д.

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

То, как мне нравится думать о JSON, – это именно то, что есть – язык в мире разных языков. Однако разница между JSON и другими языками заключается в том, что «каждый» говорит «JSON» вместе со своим «родным языком».

Используя пример реального мира, давайте притворимся, что у нас трое человек. Один человек говорит Игбо как свой родной язык. Второй человек хотел бы взаимодействовать с первым человеком, однако первый человек говорит на Йорубе как на своем первом языке.

Что мы можем сделать?

К счастью, третий человек в нашем примере вырос, говоря по-английски, но также, как говорят, как Игбо, так и Йоруба как второй язык, и поэтому может выступать в качестве посредника между двумя первыми двумя людьми.

В мире программирования первым «человеком» является Python, второй «человек» – это Ruby, а третьим «человеком» является JSON, который просто так может «перевести» Ruby на Python и наоборот! Теперь очевидно, что эта аналогия не идеальна, но, как человек, который двуязычен, я считаю, что это простой способ взглянуть на то, как JSON взаимодействует с другими языками программирования.

Попробуйте использовать следующий код для анализа вашего ответа php json: read.php

   

server.php

 < ?php echo '[{"start":"2017-08-29","end":"2017-09-01","id":"22"},{"start":"2017-09-03","end":"2017-09-06","id":"23"}]'; ?> 
  • Разбирайте файл JSON с помощью GSON
  • Как разбирать данные JSON с помощью jQuery / JavaScript?
  • Различные названия свойств JSON при сериализации и десериализации
  • Каков правильный способ отправки файла из веб-сервиса REST клиенту?
  • jackson - сериализация сущностей с двунаправленными отношениями (избегая циклов)
  • Преобразование JSON в XML в Java
  • Простейший способ прочитать json из URL-адреса в java
  • Как отправить данные json в запрос Http с помощью NSURLRequest
  • Regex для проверки JSON
  • загрузить json в переменную
  • Как сериализировать Joda DateTime с обработчиком Jackson JSON?
  • Interesting Posts

    Реестр Windows – почему (и где) это существует?

    FontAwesome – выбор правильного семейства шрифтов в псевдоэлементах CSS

    IncompatibleClassChangeError после обновления до Android Build Tools 25.1.6 GCM / FCM

    Как скрыть закладки сайтов от показа в адресной строке в Chrome?

    Является ли HashMap streamобезопасным для разных ключей?

    Android DisplayMetrics возвращает неправильный размер экрана в пикселях на ICS

    Удалить дубликаты в списке (Prolog)

    Как очистить скрытые файлы от вирусов и отключить все?

    Как определить, был ли затронут SKSpriteNode

    Невозможно получить изменяемую ссылку при повторении рекурсивной структуры: не может заимствовать как изменчивый более одного раза за раз

    Удаление строк с помощью MySQL LEFT JOIN

    Оценочное время влево и общий размер файла не отображаются в Download

    MVC 3 jQuery Проверка / глобализация числа / десятичного поля

    Преобразование из долготы \ широты в декартовы координаты

    Легко установить «эту» переменную?

    Давайте будем гением компьютера.