JSON概述

JSON

JSON简介

  • 格式特点
    • 文本格式: JSON是一种文本格式,可以被任何文本编辑器读取和编辑。
    • 键/值对: JSON数据是以键/值对的形式组织的,键和值之间使用冒号分隔,每组键/值对之间使用逗号分隔。
    • 数据类型: JSON支持字符串、数字、布尔值、数组、对象、null等数据类型。
    • 嵌套结构: 可以在JSON对象中嵌套其他对象或数组,实现复杂的数据结构。
  • 示例
var personStr = '{
    "name": "Alice",
    "age": 30,
    "isStudent": false,
    "hobbies": ["reading", "painting"],
    "address": {
        "city": "New York",
        "zipcode": "10001"
    },
    "isMarried": null
}'
  • 应用领域
    • 数据交换: 在Web开发中,常用于客户端和服务器之间的数据交换。
    • 配置文件: 用于存储和传输应用程序的配置信息。
    • API交互: 许多Web API返回的数据格式是JSON。
    • NoSQL数据库: 一些NoSQL数据库使用JSON格式存储数据。
  • 优点
    • 易读性: 对人类友好,易于阅读和编写。
    • 跨语言: JSON是一种独立于语言的数据格式,可以被多种编程语言支持。
    • 轻量级: JSON相对于XML等其他数据格式更为简洁。
  • 限制
    • 不支持注释: JSON不支持注释,不能在数据中添加注释。
    • 仅支持Unicode字符集: JSON只支持Unicode字符集,不支持二进制数据。
  • 解析与生成
    • 解析: 几乎所有编程语言都有JSON解析器,可以将JSON数据解析为相应的数据结构。
    • 生成: 同样,几乎所有编程语言都有JSON生成器,可以将数据结构转换为JSON格式。
  • JSON Schema
    • JSON Schema: 用于描述JSON数据的结构、格式和约束,可以用来验证JSON数据的有效性。

Jackson实现对json与java对象的相互转换

//将 JSON 数据转换为 Java 对象:
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonToJava {
    public static void main(String[] args) {
        ObjectMapper objectMapper = new ObjectMapper();
        String json = "{\"name\":\"Alice\",\"age\":30}";

        try {
            // 将 JSON 转换为 Java 对象
            Person person = objectMapper.readValue(json, Person.class);
            System.out.println(person.getName());
            System.out.println(person.getAge());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //创建一个类该类的属性与要转换的JSON数据的结构匹配
    static class Person {
        private String name;
        private int age;

        // 必须有默认构造函数
        public Person() {}

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }
    }
}

//将java对象转换为JSON
import com.fasterxml.jackson.databind.ObjectMapper;

public class JavaToJson {
    public static void main(String[] args) {
        ObjectMapper objectMapper = new ObjectMapper();
        Person person = new Person();
        person.setName("Bob");
        person.setAge(25);

        try {
            // 将 Java 对象转换为 JSON
            String json = objectMapper.writeValueAsString(person);
            System.out.println(json);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    static class Person {
        private String name;
        private int age;

        // 必须有默认构造函数
        public Person() {}

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getAge() {
            return age;
        }

        public void setAge(int age) {
            this.age = age;
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值