JSON 解析
学习笔记
例子
String json = "{\"title\":\"foo\", \"body\":\"bar\", \"userId\":1}";
这是一个 JSON (JavaScript Object Notation) 格式的字符串。JSON 是一种轻量级的数据交换格式,用于在不同系统或应用之间传输数据,特别是在 web 开发中,它常用于客户端和服务器之间传递数据。
具体来说,这个字符串表示一个包含多个键值对的对象,格式如下:
{
"title": "foo",
"body": "bar",
"userId": 1
}
JSON 的基本语法:
- 对象:用花括号
{}
包裹,表示一个键值对集合。每个键与值之间用冒号:
分隔,每对键值对之间用逗号,
分隔。 - 数组:用方括号
[]
包裹,表示一个值的集合。 - 键:键必须是字符串,通常使用双引号
"
括起来。 - 值:值可以是字符串、数字、布尔值、对象、数组,或者
null
。
例子解析:
{
"title": "foo",
"body": "bar",
"userId": 1
}
在 Java 中使用 JSON
你给出的字符串是一个 JSON 格式的字符串。如果你想在 Java 中使用它,你可以使用一个 JSON 库(例如 org.json
, Gson
, 或 Jackson
)将 JSON 字符串转换为 Java 对象,或者将 Java 对象转换为 JSON 字符串。
1. 使用 org.json
库解析 JSON:
import org.json.JSONObject;
public class Main {
public static void main(String[] args) {
String json = "{\"title\":\"foo\", \"body\":\"bar\", \"userId\":1}";
// 解析 JSON 字符串
JSONObject jsonObject = new JSONObject(json);
// 获取 JSON 对象中的数据
String title = jsonObject.getString("title");
String body = jsonObject.getString("body");
int userId = jsonObject.getInt("userId");
System.out.println("Title: " + title);
System.out.println("Body: " + body);
System.out.println("User ID: " + userId);
}
}
2. 使用 Gson
库解析 JSON:
import com.google.gson.Gson;
class Post {
String title;
String body;
int userId;
}
public class Main {
public static void main(String[] args) {
String json = "{\"title\":\"foo\", \"body\":\"bar\", \"userId\":1}";
// 使用 Gson 解析 JSON 字符串
Gson gson = new Gson();
Post post = gson.fromJson(json, Post.class);
System.out.println("Title: " + post.title);
System.out.println("Body: " + post.body);
System.out.println("User ID: " + post.userId);
}
}
3. 使用 Jackson
库解析 JSON:
import com.fasterxml.jackson.databind.ObjectMapper;
class Post {
public String title;
public String body;
public int userId;
}
public class Main {
public static void main(String[] args) throws Exception {
String json = "{\"title\":\"foo\", \"body\":\"bar\", \"userId\":1}";
// 使用 Jackson 解析 JSON 字符串
ObjectMapper objectMapper = new ObjectMapper();
Post post = objectMapper.readValue(json, Post.class);
System.out.println("Title: " + post.title);
System.out.println("Body: " + post.body);
System.out.println("User ID: " + post.userId);
}
}
总结:
- JSON 是一种用于存储和传输数据的轻量级格式,广泛用于 web 开发。
- 你提供的字符串是一个符合 JSON 语法的对象表示。
- 在 Java 中,你可以通过库(如
Gson
,Jackson
,org.json
)来解析和生成 JSON 数据。