JSON 基本上是结构化文本。
一个例子是客户端-服务器架构,例如网络浏览器-服务器通信。来自服务器的数据可以从原生格式序列化为 JSON(文本),并通过网络(字节流)传输到客户端(Web 浏览器)。当数据到达客户端(网络浏览器)时,它会被反序列化为 Javascript 对象并进行处理(可能会向用户显示某些内容或操作 UI - 非必要的)。
Java 示例
假设我们的服务器应用程序中有一个简单的类,它是用 Java 编写的:
class Person {
String name;
int age;
}
我们有这个类的一个实例:
Person person = new Person();
person.name = "John";
person.age = 32;
我们选择在服务器到客户端的通信中使用 JSON 作为数据格式。将人的实例转换为 JSON 如下所示:
String json = "{\"person\": {\"name\": \"John\", \"age\": 32} }";
现在我们只需将这个字符串写入 HTTP 响应,客户端从那里读取它 - 到一个字符串。然后将字符串反序列化为 Javascript 对象。反序列化可能如下所示(有关 JSON.parse 的更多信息,请参阅MDN / JSON.parse):
/* We get responseText by AJAX and it looks exactly the same that we sent from our web
server - IT IS TEXT, the variable 'json' contents in our Java application. */
var responseText = "..."
var data = JSON.parse( responseText ); // JSON.parse is supported by modern browsers
如果直接写成 Javascript 对象,数据看起来像这样:
data = {
person: {
name: john,
age: 32
}
};
所以,我们从一个 Java 对象开始在服务器端。我们将 Java 对象序列化为 JSON 字符串,并通过网络将其发送到客户端。客户端将 JSON 字符串反序列化为 Javascript 对象(可以以特定语言的方式正确处理)。