json学习

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,也易于机器解析和生成。它通常用于在服务器和客户端之间交换数据,特别是在 Web 应用中。

JSON 格式基于 JavaScript 对象表示法,但它是语言独立的,广泛用于多种编程语言中。JSON 使用文本格式来存储和表示数据,通常用于存储配置文件、数据库交互和API响应等场景。

JSON 的基本结构

JSON 由键值对组成,格式类似于 JavaScript 对象,但有一些规则:

  1. 键(key):必须是字符串,放在双引号中。
  2. 值(value) :可以是字符串、数字、布尔值(truefalse)、数组、对象或 null
  3. 对象 :由一对大括号 {} 包围,表示一个键值对集合。
  4. 数组 :由一对方括号 [] 包围,表示一个值的有序集合。

示例

javascript 复制代码
{
  "name": "John", 
  "age": 30,
  "isStudent": false,
  "courses": ["Math", "Science"],
  "address": {
    "street": "123 Main St",
    "city": "New York"
  }
}

如何使用 JSON:

  • 读取和解析 JSON :许多编程语言都有内置的库来解析和生成 JSON。例如,在 Java 中,可以使用 JacksonGson 库,在 JavaScript 中,JSON.parse()JSON.stringify() 方法可以处理 JSON。

Jackson

Jackson 是一个高效且功能强大的 JSON 处理库,广泛用于 Java 项目中。它提供了丰富的功能,能够处理各种类型的 JSON 数据,支持复杂的对象映射、流式解析、树状模型等。

示例

java 复制代码
import com.fasterxml.jackson.databind.ObjectMapper;

class Person {
    public String name;
    public int age;
    
    // 构造函数、getter、setter等
}

public class JacksonExample {
    public static void main(String[] args) throws Exception {
        // 创建 ObjectMapper 实例
        ObjectMapper objectMapper = new ObjectMapper();

        // 序列化:Java 对象转 JSON 字符串
        Person person = new Person();
        person.name = "John";
        person.age = 30;
        String json = objectMapper.writeValueAsString(person);
        System.out.println(json);

        // 反序列化:JSON 字符串转 Java 对象
        String jsonInput = "{\"name\":\"John\",\"age\":30}";
        Person personFromJson = objectMapper.readValue(jsonInput, Person.class);
        System.out.println(personFromJson.name + " - " + personFromJson.age);
    }
}

输出

java 复制代码
{"name":"John","age":30}
相关推荐
oliver_sys_log6 小时前
老项目 json-lib 2.4 JSONTokener 精度丢失问题排查
json
IT_Octopus10 小时前
JSON 日志里的 `{“$ref“:“$.xxx“}`:从 fastjson 兼容包到原生 fastjson2 的迁移实录
开发语言·python·json
数据狐(Datafox)15 小时前
mercadolibre.item_get 工程实战:美客多商品详情API技术解析与落地应用
java·人工智能·mysql·json
Fcy64816 小时前
Linux下 应⽤层⾃定义协议与序列化(JSON方法)
linux·json
半亩码田2 天前
C#转Python第4.4篇:JSON 处理:json 模块 vs System.Text.Json
python·c#·json
清水白石0082 天前
Python 类型设计深度解析:TypedDict 能否替代 dataclass?从 JSON 数据边界到 API 设计的最佳实践
java·python·json
DevOpenClub2 天前
网页采集如何稳定输出结构化数据:JSON、链接与快照三阶段流水线
数据库·json·api
霸道流氓气质3 天前
Spring AI 结构化输出:JSON Mode 与 BeanOutputConverter
人工智能·spring·json
SelectDB4 天前
StarRocks 适合做日志分析吗?
数据分析·json·自动化运维
SelectDB4 天前
为什么 JSON 正在成为分析数据库新的竞争点?
数据库·json·agent