JAVA学习笔记035——对象和JSON格式

"对象"和"JSON"格式经常听,也经常用。

说说它们概念的意思。

对象示例:

复制代码
let person = {
  name: "张三",
  age: 25,
  isStudent: false,
  hobbies: ["阅读", "游泳", "摄影"]
};

JSON格式示例:

复制代码
{
  "name": "张三",
  "age": 25,
  "isStudent": false,
  "hobbies": ["阅读", "游泳", "摄影"]
}

JSON格式的典型特征:

使用双引号包裹键名

值可以是字符串、数字、布尔值、数组、对象或null

键值对之间用逗号分隔

整体用花括号 {} 包裹表示对象

问题:对象是属性和值的组合,JSON也是属性和值的组合,我有点分不清他们俩的区别了

简单来说:JSON是一种特殊的字符串格式,而对象是程序内存中的数据结构。

JSON 是对象的一种"字符串表现形式"

一个比喻:

对象​ 就像你客厅里一个真实的、放着东西的茶几。你可以直接在上面拿东西、放东西。

JSON​ 就像你把这个茶几拍了张照片。照片记录了这个茶几的样子,但它本身不是茶几,不能直接在上面放东西。

两者都是键值对的形式,那它们有哪些区别呢?

不同点(严格程度不一样)

对比项 对象(JS里) JSON(字符串格式)

键名必须加引号吗? 不一定。

✅ 可以:{name: "张三"}

✅ 也可以:{"name": "张三"}

✅ 中文键最好加:{"姓名": "张三"} 必须加双引号。

❌ 错误:{name: "张三"}

✅ 正确:{"name": "张三"}

值可以是函数吗? ✅ 可以。比如 {sayHi: function(){}} ❌ 不可以。JSON只存数据,不存方法

值可以用单引号吗? ✅ 可以。{name: '张三'} ❌ 不可以。必须用双引号

最后一项可以加逗号吗? ✅ 可以。{a:1, b:2,} ❌ 不可以。{"a":1, "b":2} 最后不能有多余逗号

它们之间的转换关系:

复制代码
// 1. 对象 → JSON字符串(序列化)
const person = { name: "张三", age: 25 };
const jsonString = JSON.stringify(person);
// 结果:'{"name":"张三","age":25}'  ← 这是一个字符串!

// 2. JSON字符串 → 对象(反序列化)
const jsonStr = '{"name":"李四","age":30}';
const obj = JSON.parse(jsonStr);
console.log(obj.name); // 输出:"李四"

再问:"data":{"公寓申请":true,"备案审核":true,"意见反馈":false,"公寓修改申请":true}} 这种数据叫对象还是叫JSON格式?

根据上面说的,JSON 是对象的一种"字符串表现形式"

你问到的数据,直接回答,它就是一种JSON格式,而它所要表达的是一个对象。

{"公寓申请":true,"备案审核":true},如果它是:在代码中直接写的 → 它就是一个对象。

如果它是:在文件中存储的文本或从网络接收的文本 → 它是JSON格式的字符串

某种情况下,它们是一样的:

JSON格式的写法 + 没有被引号包着 + 写在JS代码里 = 对象

特别强调是在JS代码中,因为别的语言写法不是这样。

如果这个写法写在 JavaScript 代码中,且没有加引号,可以理解为对象。

如果写在 Python 代码中,它会被理解为字典(不是对象)。

如果写在 Java 代码中,它根本不能直接写,会编译报错。

相关推荐
Java_2017_csdn几秒前
OFC、ERP、OMS、WMS、TMS 对比-详解
java
励志不掉头发的内向程序员1 小时前
【从零写一个CAD 03】三个 double 值得单独一个类吗:把视图变换抽成 View
开发语言·c++·qt·学习·系统架构
m4Rk_7 小时前
【论文阅读】Agent 记忆机制(83):Inside Out——用可演化 PersonaTree 构建 Agent 的核心长期记忆
论文阅读·人工智能·学习·开源·github
andyweike7 小时前
php笔记
开发语言·笔记·php
EatFan8 小时前
Spring Boot 4 落地观察:从 yudao-cloud、matecloud、JPower 看国产脚手架的升级路线与迁移清单
java·spring boot·后端·spring cloud·微服务·后端开发·jdk 21
Maiko Star8 小时前
* LangChain 提示词模板详解:ChatPromptTemplate 的使用与高级特性
java·人工智能·langchain
鬓戈8 小时前
Rust 语言与 AI 应用生态调研及学习路径
人工智能·学习·rust
传奇开心果编程8 小时前
【SwiftUI娓娓道来】第3课:让界面活起来——交互与动画指南
学习·macos·ui·ios·swiftui·swift
xian_wwq9 小时前
【学习笔记】等保合规安全基线核查实战
笔记·学习
传奇开心果编程9 小时前
【Jetpack Compose进阶学与练】第14课:系列收尾复习总结;Compose项目常见坑点汇总;学习路线与后续学习方向
android·学习·ui·kotlin·android jetpack