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

В соответствии с эта ссылка на yasm (см. Ссылки на память) у вашего NASM может возникнуть проблема с определением размера ссылки на память:

Обычно размер ссылка на память может быть выведена с помощью каких регистров, которые вы перемещаете - например, «mov [rax], ecx» - это 32-битное перемещение, потому что ecx - 32 бита. YASM в настоящее время дает неочевидную ошибку «неправильная комбинация опкодов и операндов», если она не может определить, сколько памяти вы двигаете. Исправление в этом случае заключается в том, чтобы добавить спецификатор размера памяти: qword, dword, word или byte.

Ниже приведено 64-битное перемещение памяти, которое устанавливает 8 байт, начиная с rax: mov qword [rax], 1

Вот 32-битный ход памяти, который устанавливает 4 байта: mov dword [rax], 1

Вот 16-битный ход памяти, который устанавливает 2 байта: mov word [rax], 1

Вот 8-битный ход памяти, который устанавливает 1 байт: mov byte [rax], 1

515
задан lev 9 April 2014 в 11:02
поделиться

8 ответов

JSON (Объектная нотация JavaScript) является легким форматом, который используется для обмена данных. Это основано на подмножестве языка сценариев JavaScript (способ, которым объекты создаются в JavaScript). Как [1 112] указанный в MDN, некоторый JavaScript не является JSON, и некоторым JSON не является JavaScript.

примером того, где это используется, являются ответы веб-сервисов. В 'старые' дни веб-сервисы использовали XML в качестве своего формата первичных данных для передачи назад данных, но так как JSON появился (, формат JSON определяется в [1 113] RFC 4627 Douglas Crockford ), это был предпочтительный формат, потому что это - намного больше легкий вес

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

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

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

Структура JSON



JSON Object diagram

JSON Array diagram

JSON Value diagram

JSON String diagram

JSON Number diagram

Вот пример данных 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 объект строки типа не объект в своем собственном праве. Для превращения это в полностью оперенный JavaScript возражает, что необходимо сначала проанализировать его, var x = JSON.parse('{"x":"y"}');, x теперь объект, но это больше не JSON.

Видят объект JavaScript По сравнению с <часом> JSON

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

Поэтому нужно всегда пытаться использовать сценарий Crockford, который проверяет на допустимый 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. Это полезно для того, когда Вы хотите к [1 149], передают данные обратно серверу:

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

<час>

Ссылки

626
ответ дан 16 revs, 11 users 55% 9 April 2014 в 11:02
поделиться

Мы должны сделать проект в колледже, и мы столкнулись с очень большой проблемой, это называют Той же политикой Источника. Amog другие вещи, это делает тот Ваш метод XMLHttpRequest из JavaScript, не может выполнить запросы к доменам кроме домена, что Ваш сайт идет.

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

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

4
ответ дан Andreas Grech 9 April 2014 в 11:02
поделиться

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

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

, то Вы могли бы записать в Javascript

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

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

  • Обновление (десять лет спустя): не делайте этого, используйте JSON.parse
11
ответ дан Steven A. Lowe 9 April 2014 в 11:02
поделиться

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

16
ответ дан Nolte 9 April 2014 в 11:02
поделиться

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

синтаксис - то, что используемый в JavaScript и самом JSON обозначает "Объектную нотацию JavaScript". Однако это стало портативным и используется на других языках также.

полезная ссылка А для детали здесь:

http://secretgeek.net/json_3mins.asp

31
ответ дан CashCow 9 April 2014 в 11:02
поделиться

Короче говоря - JSON является способом сериализировать таким способом, что это становится кодом JavaScript. Когда выполняется (с оценкой или иначе), этот код создает и возвращает объект 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 для различных языков программирования.

48
ответ дан Vilx- 9 April 2014 в 11:02
поделиться

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

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

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

8
ответ дан Jason Baker 9 April 2014 в 11:02
поделиться

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

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

2
ответ дан 22 November 2019 в 22:29
поделиться
Другие вопросы по тегам:

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