json那点事儿

在序列化javabean的时候,遇到一个怪异的问题;最终发现:当你的bean中存在isNull()这样一个方法签名时,在JSONObject.fromObjec(bean)时,会收获一个ClassCastException:json keys must be strings


解决这个问题,,方法很多,也很简单:jsonConfig.setExcludes(new String[]{"null"})


究其原因:json在内部某处处理的时候,把“null"变成了null;所以原本是字符串类型的key,变成了null

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON 源代码通常指的是符合 JSON 格式规范的文本内容。 JSON 有两种基本的数据结构: - **对象(Object)**:是一个无序的数据集合,由键值对组成,键和值之间用冒号分隔,键值对之间用逗号分隔,整个对象用花括号 `{}` 包裹。例如: ```json { "name": "Tom", "age": 10, "time": "2024" } ``` - **数组(Array)**:是一个有序的数据集合,值之间用逗号分隔,整个数组用方括号 `[]` 包裹。例如: ```json [ "apple", "banana", "cherry" ] ``` JSON 中的值可以是以下几种类型: - **字符串(String)**:用双引号括起来的字符序列,如 `"Tom"`。 - **数字(Number)**:可以是整数或浮数,如 `10`、`3.14`。 - **布尔值(Boolean)**:`true` 或 `false`。 - **空值(Null)**:`null`。 - **对象(Object)**:可以嵌套使用。 - **数组(Array)**:也可以嵌套使用。 例如,一个更复杂的 JSON 示例可能包含对象和数组的嵌套: ```json { "person": { "name": "Tom", "age": 10, "hobbies": [ "reading", "swimming" ] }, "friends": [ { "name": "Alice", "age": 9 }, { "name": "Bob", "age": 11 } ] } ``` 在 Java 中,像引用[1]里的 `String json = "{\"name\": \"Tom\", \"age\": \"10\", \"time\": \"2024\" }";` 就是一个 JSON 字符串,不过这里为了在 Java 字符串中表示双引号,使用了转义字符 `\`。这个 JSON 字符串表示一个简单的对象,包含 `name`、`age` 和 `time` 三个键值对。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值