JSON-сервер


Оглавление

    Показать оглавление


Обычно JSON используется для обмена данными с веб-сервером.

При получении данных с веб-сервера данные всегда представляют собой строку.

Проанализируйте данные с помощью JSON.parse(), и данные станут объектом JavaScript.


Отправка данных

Если у вас есть данные, хранящиеся в объекте JavaScript, вы можете преобразовать объект в JSON и отправьте его на сервер:

Пример

 const myObj = {name: "John", 
  age: 31, city: "New York"};
const myJSON = 
  JSON.stringify(myObj);
window.location = "demo_json.php?x=" + myJSON;

Попробуйте сами →

<!DOCTYPE html>
<html>
<body>

<h2>Convert a JavaScript object into a JSON string, and send it to the server.</h2>

<script>
const myObj = { name: "John", age: 31, city: "New York" };
const myJSON = JSON.stringify(myObj);
window.location = "demo_json.php?x=" + myJSON;
</script>

</body>
</html>

Получение данных

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

Пример

 const myJSON =
  '{"name":"John", 
  "age":31, "city":"New York"}';
const myObj = 
  JSON.parse(myJSON);
document.getElementById("demo").innerHTML = myObj.name;

Попробуйте сами →

<!DOCTYPE html>
<html>
<body>

<h2>Convert a JSON string into a JavaScript object.</h2>

<p id="demo"></p>

<script>
const myJSON = '{"name":"John", "age":31, "city":"New York"}';
const myObj = JSON.parse(myJSON);
document.getElementById("demo").innerHTML = myObj.name;
</script>

</body>
</html>

JSON с сервера

Вы можете запросить JSON с сервера, используя запрос AJAX.

Если ответ от сервера записан в формате JSON, вы можете проанализировать строку в объект JavaScript.

Пример

Используйте XMLHttpRequest для получения данных с сервера:

const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function() {
  const myObj = JSON.parse(this.responseText);
  document.getElementById("demo").innerHTML = myObj.name;
};
xmlhttp.open("GET", "json_demo.txt");
xmlhttp.send();

Попробуйте сами →

<!DOCTYPE html>
<html>
<body>

<h2>Fetch a JSON file with XMLHttpRequest</h2>
<p id="demo"></p>

<script>
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function() {
  const myObj = JSON.parse(this.responseText);
  document.getElementById("demo").innerHTML = myObj.name;
}
xmlhttp.open("GET", "json_demo.txt");
xmlhttp.send();
</script>

</body>
</html>

Взгляните на json_demo.txt: https://basicit.org/js/json_demo.txt.



Массив в формате JSON

При использовании JSON.parse() для JSON, полученного из массива, метод будет вернуть массив JavaScript вместо объекта JavaScript.

Пример

JSON возвращается с сервера в виде массива:

const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function() {
  const myArr = JSON.parse(this.responseText);
  document.getElementById("demo").innerHTML = myArr[0];
  }
}
xmlhttp.open("GET", "json_demo_array.txt", true);
xmlhttp.send();

Попробуйте сами →

<!DOCTYPE html>
<html>
<body>

<h2>Fetch a JSON file with XMLHttpRequest</h2>
<p>Content written as an JSON array will be converted into a JavaScript array.</p>
<p id="demo"></p>

<script>
const xmlhttp = new XMLHttpRequest();
xmlhttp.onload = function() {
  const myArr = JSON.parse(this.responseText);
  document.getElementById("demo").innerHTML = myArr[0];
}
xmlhttp.open("GET", "json_demo_array.txt", true);
xmlhttp.send();
</script>

</body>
</html>

Взгляните на json_demo_array.txt: https://basicit.org/js/json_demo_array.txt.