首页 > 其他分享 >json学习

json学习

时间:2024-12-06 21:00:28浏览次数:9  
标签:Java name age JSON 学习 Person json John

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

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

JSON 的基本结构

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

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

示例

{
  "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 数据,支持复杂的对象映射、流式解析、树状模型等。

示例

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);
    }
}

输出

{"name":"John","age":30}

标签:Java,name,age,JSON,学习,Person,json,John
From: https://blog.csdn.net/weixin_73376914/article/details/144299943

相关文章

  • [学习笔记]更全面的哈希总结
    观前提示:本篇博客主要是关于算法竞赛领域的哈希哈希的思想Hash的核心思想在于,将输入映射到一个值域较小、可以方便比较的范围对于字符串,可重集之类的需要\(O(n)\)比较的输入,如果能够将其映射为一个32位数或者64位数,就可以更方便地比较,这就是字符串哈希.或......
  • 零基础学习Air724UG低功耗模组软件的FTP示例 | 演示篇
    一文讲清Air724UG低功耗模组软件的FTP示例,分步演示,就算零基础也一眼懂!一、简介FTP(FileTransferProtocol,文件传输协议)是TCP/IP协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过......
  • ORB-SLAM2源码学习:MapPoint.cc:MapPoint::UpdateNormalAndDepth()计算平均观测方向以
    前言这个函数是属于地图点属性的一部分。1.函数声明voidMapPoint::UpdateNormalAndDepth(){....}2.函数定义1.获取观测到该地图点的所有关键帧的信息 map<KeyFrame*,size_t>observations;KeyFrame*pRefKF;cv::MatPos;{unique_lock<m......
  • 基于Pytorch的深度学习入门教程
    基于Pytorch的深度学习入门教程私以为深度学习入门主要是数据+模型,因此本教程从数据入手,逐步深入本教程需要一定的基础,不是对内容的详细讲解,更偏重于引导入门。详细内容参见​PyTorchdocumentation关于分析python包内容及作用​dir()​获取包中的所有功能​help()​帮助文......
  • [豪の学习笔记] 计算机网络#002
    2.1.1-速率、带宽、延迟①速率速率即数据率,或称数据传输速率或比特率单位时间(秒)传输信息(比特)量是计算机网络中最重要的一个性能指标单位:b/s(或bps)、kb/s、Mb/s、Gb/sk=10^3、M=10^6、G=10^9速率往往是指额定速率或标称速率②带宽带宽(bandwidth)原本指信号......
  • 【机器学习】从入门到实战:深入解析 K 最近邻(KNN)算法在手写数字分类中的应用
    从入门到实战:深入解析K最近邻(KNN)算法在手写数字分类中的应用K最近邻(K-NearestNeighbors,KNN)算法基本原理特点总结实战基于KNN对手写数字进行分类超参数调节模型训练与测试性能评估与混淆矩阵绘制完整代码训练代码测试代码不同度量方法比较总结K最近邻(K-Nearest......
  • 【机器学习】深入解析 PCA 与三元组损失:从理论推导到实践应用
    深入解析PCA与三元组损失:从理论推导到实践应用PCA(PrincipalComponentAnalysis)主成分分析详解1.基本概念1.1什么是PCA?1.2核心目标1.3应用场景2.数学原理详解2.1问题形式化2.2数据预处理2.3协方差矩阵的计算2.4特征值分解2.5最大方差推导2.6数据降维......
  • 【机器学习】深入浅出:多项式回归的全解析
    深入浅出:多项式回归的全解析1.多项式回归简介1.1什么是多项式回归?1.2应用场景1.3线性回归与多项式回归的区别2.多项式回归模型的构建2.1多项式回归的基本步骤2.2特征转换与矩阵表示2.3多项式阶数的选择3.多项式回归的优缺点3.1优势3.2劣势4.实例解析4.1......
  • 【机器学习】支持向量机(SVM)详解:原理与优化
    支持向量机(SVM)详解:原理与优化支持向量机(SVM)详解1.基本概念2.数学原理2.1线性可分情况2.2最优化问题2.3拉格朗日对偶问题2.4核函数技巧(KernelTrick)2.5非线性分类与支持向量3.优缺点分析3.1优点3.2缺点4.SVM与其他算法的比较5.总结支持向量机(SVM......
  • 技术框架中对MyBatis的一对一查询的学习
    高级查询之一对一查询查询条件根据游戏角色ID,查询账号信息我们在之前创建的映射器接口GameMapper.java中添加接口方法,如下: /***根据角色ID查询账号信息*@paramid角色Id*@return角色实体对象*/publicRoleEntityselectRoleById(intid);......