что такое использование json. простой реальный мир пример пожалуйста [дубликат]

Не самый элегантный способ, но это сработало для меня:

  var ms = date.substring (6, date.length - 2);  var newDate = formatDate (ms);  function formatDate (ms) {var date = new Date (parseInt (ms));  var hour = date.getHours ();  var mins = date.getMinutes () + '';  var time = "AM";  // находим время, если (час & gt; = 12) {time = "PM";  } // фиксирует формат часов, если (час & gt; 12) {hour - = 12;  } else if (hour == 0) {hour = 12;  } // фиксирует формат минут if (mins.length == 1) {mins = "0" + mins;  } // return formatted date time string return date.getMonth () + 1 + "/" + date.getDate () + "/" + date.getFullYear () + "" + hour + ":" + mins + ""  + время;  }  
479
задан lev 9 April 2014 в 12:02
поделиться

15 ответов

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, посмотрите этот пост , который объясняет и подтверждает


Ссылки

591
ответ дан 16 revs, 11 users 55% 16 August 2018 в 00:48
поделиться
  • 1
    Независимо от того, как информация сериализована, у вас будет парсер, верно? Поэтому, кто заботится о том, какой формат вы используете для передачи данных, если его детали реализации будут абстрагированы. – Tom Lehman 20 December 2008 в 22:20
  • 2
    Ну, на самом деле, если вы передаете данные на клиент и сервер, я думаю, что очень важно быть осторожным с размерами ответов. – Andreas Grech 20 December 2008 в 22:25
  • 3
    Для педантичного есть несколько символов, которые JSON обрабатывает по-разному, чем JavaScript, не позволяя ему быть строгим подмножеством: timelessrepo.com/json-isnt-a-javascript-subset – Jeremy 7 June 2011 в 23:26
  • 4
    Очень понравилось! – bubble 4 September 2014 в 08:23
  • 5
    Так вы замените XML на JSON? Это то, что вы говорите? Если так ... Отлично, xml - это кошмар. – James111 25 March 2015 в 01:16

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

<script
  src="https://code.jquery.com/jquery-3.2.1.min.js"
  integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
  crossorigin="anonymous"></script>
<script type="text/javascript">  
$.ajax({
    url:'index.php',
    data:{},
    type:"POST",
    success:function(result) {
        jsondecoded = $.parseJSON(result);
        $.each(jsondecoded, function(index, value) {
            $("#servers").text($("#servers").text() + " " + value.servername);
            console.log(value.start);
            console.log(value.end);
            console.log(value.id);
        });
    },
    statusCode: {
    404: function() {
      alert( "page not found" );
    }
  }
});
</script>

server.php

<?php 
echo '[{"start":"2017-08-29","end":"2017-09-01","id":"22"},{"start":"2017-09-03","end":"2017-09-06","id":"23"}]';
?>
-1
ответ дан amit rawat 16 August 2018 в 00:48
поделиться

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

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

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

3
ответ дан Andreas Grech 16 August 2018 в 00:48
поделиться

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

Что такое JSON? - Как я объяснил это своей жене

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

Жена: да ... ?

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

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

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

Me:

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

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

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

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

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

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

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

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

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

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

Жена: Итак, как я пишу в Json?

Me: Прочитайте приведенные выше ответы для специфики.

Резюме

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

31
ответ дан BKSpurgeon 16 August 2018 в 00:48
поделиться

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

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

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

http://secretgeek.net/json_3mins.asp

28
ответ дан CashCow 16 August 2018 в 00:48
поделиться

Что такое JSON?

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

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

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

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

JSON с PHP?

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

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

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

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

Данные находятся в парах имя / значение. Данные разделяются запятыми. Фигурные фигурные скобки удерживают объекты. Квадратные скобки содержат массивы

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

Пример JSON

8
ответ дан Elangovan 16 August 2018 в 00:48
поделиться

Различие между 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'});

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

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

 var Emp = new Employee({'name':'Mike', 'Id':'123', 'Phone':'23792747', 'email':'mike.adnersone@office.com'});
4
ответ дан Ganesh Vellanki 16 August 2018 в 00:48
поделиться

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

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

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

7
ответ дан Jason Baker 16 August 2018 в 00:48
поделиться

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

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

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

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

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

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

0
ответ дан Jerel 16 August 2018 в 00:48
поделиться

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

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

1
ответ дан Jon 16 August 2018 в 00:48
поделиться

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

15
ответ дан Nolte 16 August 2018 в 00:48
поделиться

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

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

1
ответ дан Shailendra Singh 16 August 2018 в 00:48
поделиться

общий короткий ответ: если вы используете 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 результаты.

11
ответ дан Steven A. Lowe 16 August 2018 в 00:48
поделиться

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

16
ответ дан the Tin Man 16 August 2018 в 00:48
поделиться

Короче - 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 для разных языков программирования.

47
ответ дан Vilx- 16 August 2018 в 00:48
поделиться
  • 1
    уже некоторое время работает с JSON, но это самый элегантный пример (я видел), который фиксирует и уточняет структуру. – DaniDev 4 January 2018 в 20:28
Другие вопросы по тегам:

Похожие вопросы: