Java中JSON字符串写法

在Java开发中,JSON(JavaScript Object Notation)字符串是一种常见的数据交换格式,用于在不同系统之间传递数据。JSON字符串由键值对组成,通过大括号{}和中括号[]来表示对象和数组。在Java中,我们通常使用第三方库如Jackson或Gson来处理JSON数据。本文将介绍Java中JSON字符串的写法,并通过代码示例演示如何创建和解析JSON字符串。

JSON字符串基本结构

JSON字符串由键值对组成,每个键值对用冒号:分隔,不同键值对之间用逗号,分隔。键名(key)必须是一个字符串,值可以是字符串、数字、布尔值、对象或数组。下面是一个简单的JSON字符串示例:

{
  "name": "Alice",
  "age": 30,
  "isStudent": true,
  "address": {
    "street": "123 Main St",
    "city": "San Francisco"
  },
  "hobbies": ["reading", "traveling"]
}

在上面的JSON字符串中,有一个名为"name"的键,它的值是一个字符串"Alice";有一个名为"age"的键,它的值是一个数字30;有一个名为"isStudent"的键,它的值是一个布尔值true;有一个名为"address"的键,它的值是一个嵌套的对象,包含"street"和"city"两个键值对;有一个名为"hobbies"的键,它的值是一个包含两个元素的数组。

创建和解析JSON字符串

使用Jackson库

在Java中使用Jackson库可以很方便地创建和解析JSON字符串。下面是一个使用Jackson库创建JSON字符串的示例:

ObjectMapper objectMapper = new ObjectMapper();
ObjectNode jsonNode = objectMapper.createObjectNode();
jsonNode.put("name", "Bob");
jsonNode.put("age", 25);

ObjectNode addressNode = objectMapper.createObjectNode();
addressNode.put("street", "456 Elm St");
addressNode.put("city", "New York");

jsonNode.set("address", addressNode);

ArrayNode hobbiesNode = objectMapper.createArrayNode();
hobbiesNode.add("coding");
hobbiesNode.add("hiking");

jsonNode.set("hobbies", hobbiesNode);

String jsonString = objectMapper.writeValueAsString(jsonNode);
System.out.println(jsonString);

在上面的代码中,我们首先创建了一个ObjectMapper对象,然后使用createObjectNode()方法创建一个新的ObjectNode对象。接着我们向ObjectNode对象中添加键值对,最后通过writeValueAsString()方法将ObjectNode对象转换为JSON字符串并打印输出。

使用Gson库

另一个常用的JSON库是Gson,它也提供了方便的方式来创建和解析JSON字符串。下面是一个使用Gson库创建JSON字符串的示例:

Gson gson = new Gson();
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("name", "Charlie");
jsonObject.addProperty("age", 35);

JsonObject addressObject = new JsonObject();
addressObject.addProperty("street", "789 Oak St");
addressObject.addProperty("city", "Chicago");

jsonObject.add("address", addressObject);

JsonArray hobbiesArray = new JsonArray();
hobbiesArray.add("cooking");
hobbiesArray.add("painting");

jsonObject.add("hobbies", hobbiesArray);

String jsonString = gson.toJson(jsonObject);
System.out.println(jsonString);

在上面的代码中,我们首先创建了一个Gson对象,然后使用addProperty()和add()方法向JsonObject对象中添加键值对和数组元素。最后我们通过toJson()方法将JsonObject对象转换为JSON字符串并打印输出。

应用示例

饼状图示例

下面是一个使用mermaid语法中的pie标识绘制的饼状图示例,展示了不同水果的销售比例:

pie
    title Fruit Sales
    "Apple" : 42
    "Banana" : 30
    "Orange" : 15
    "Grape" : 13

甘特图示例

下面是一个使用mermaid语法中的gantt标识绘制的甘特图示例,展示了一个项目的任务时间安排:

gantt
    title Project Timeline
    section Design
    Brainstorming        :a1, 2022-01-01, 3d
    Prototyping          :after a1, 2d
    section Development
    Coding               :2022-01