Serveur JSON

JSON 的一个常见用途是与 Web 服务器交换数据。

从 Web 服务器接收数据时,数据始终是字符串。

JSON.parse() 解析数据,数据会成为 JavaScript 对象。

发送 Data

如果您将数据存储在 JavaScript 对象中,则可以将对象转换为 JSON,并将其发送到服务器:

Exemple

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

Essayez-le vous-même

接收 Data

如果您接收 JSON 格式的数据,则可以轻松地将其转换为 JavaScript 对象:

Exemple

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

Essayez-le vous-même

来自服务器的 JSON

您可以使用 AJAX 请求从服务器请求 JSON

只要来自服务器的响应以 JSON 格式编写,您就可以将字符串解析为 JavaScript 对象。

Exemple

使用 XMLHttpRequest 从服务器获取数据:

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

Essayez-le vous-même

Veuillez voir :json.txt

JSON sous forme d'array

Utilisation de JSON.parse() Lorsque cette méthode est appelée sur un JSON dérivé d'un array, elle retourne un tableau JavaScript plutôt qu'un objet JavaScript.

Exemple

JSON retourné par le serveur sous forme d'array :

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

Essayez-le vous-même

Veuillez voir :json_array.txt