json的存在意义(json和String的区别)

本文探讨了JSON与String在数据交换中的区别与应用。通过对比两者在数据获取方面的便捷性,解释了为什么即使在可以使用String的情况下,仍选择使用JSON格式。

我一直不太明白json是个什么东西,虽然一直用,但总感觉json跟String有些微妙的相似感,要说为了进行程序间的数据传递吧,但Java程序中用“@responsebody”标签最后传递的好多都是“return JSON.toJSONString(resultMap)”,那你干脆创建一个String对象传过去得了,非得“json转String”,不是多此一举吗?


后来查资料看大家的意见,发现这感觉跟“int转String,String转double”等有些微妙的相似,我们把“int转String”为了什么,还不是为了使用String类的某些功能,还有“父类转子类(instance of)”,同样是为了让父类使用子类有而父类没有的方法;

String字符串:
var str1 = '{ "name": "cxh", "sex": "man" }'; 
JSON对象:
var str2 = { "name": "cxh", "sex": "man" };

那明明一种形式能用String表示,干嘛非得费劲地整成json格式呢?-----那是因为json在获取内容方面比String更方便:


如果你在前台使用,那么Json对象可以通过xx.name来调用获取;如果是字符串,那就只能是字符串,你就只能各种切割各种分组获得name,数据一多看不切割死你,烦不胜烦... ...




--------------------------------------------------------------------------------------------


ajax的dataType属性,我一直以为是为了约束"发送给服务器的data"的数据类型的,今天再一看,原来是为了约束服务器的返回值类型,而data的数据类型ajax定死了为Object或String... ...


JSON 数据 JSON 字符串(JSONString)在本质、表现形式、使用方式等方面存在明显区别: ### 本质区别 - **JSON 数据**:是一种轻量级的数据交换格式,它以键值对的形式存储数据,可以包含对象、数组、字符串、数字、布尔值 null 等多种数据类型。在编程语言中,JSON 数据通常会被解析为相应的数据结构,如对象、字典、列表等,方便程序进行操作。 - **JSON 字符串**:是一个普通的字符串,它的内容遵循 JSON 格式的语法规则。JSON 字符串只是文本形式的表达,不能直接被程序像操作数据结构那样操作,需要先进行解析。 ### 表现形式区别 - **JSON 数据**:在不同的编程语言中有不同的表现形式。例如在 JavaScript 中,JSON 数据可以直接用对象字面量表示: ```javascript const jsonData = { "name": "John", "age": 30, "hobbies": ["reading", "swimming"] }; ``` - **JSON 字符串**:是用双引号括起来的文本,其中的特殊字符(如引号)可能需要转义。例如上述 JSON 数据对应的 JSON 字符串为: ```javascript const jsonString = '{"name": "John", "age": 30, "hobbies": ["reading", "swimming"]}'; ``` ### 使用方式区别 - **JSON 数据**:可以直接访问修改其中的属性元素。例如在 JavaScript 中,可以这样访问 `jsonData` 中的属性: ```javascript console.log(jsonData.name); // 输出: John ``` - **JSON 字符串**:不能直接访问其中的数据,需要先将其解析为 JSON 数据。在 JavaScript 中,可以使用 `JSON.parse()` 方法进行解析: ```javascript const parsedData = JSON.parse(jsonString); console.log(parsedData.name); // 输出: John ``` 反之,如果要将 JSON 数据转换为 JSON 字符串,可以使用 `JSON.stringify()` 方法: ```javascript const newJsonString = JSON.stringify(jsonData); ``` ### 存储传输区别 - **JSON 数据**:通常用于在程序内部进行数据处理操作,不能直接存储到文件或进行网络传输。 - **JSON 字符串**:适合存储到文件或进行网络传输,因为它是文本形式,可以方便地在不同系统程序之间交换。例如,可以将 JSON 字符串写入文件: ```python import json json_string = '{"name": "John", "age": 30, "hobbies": ["reading", "swimming"]}' with open('data.json', 'w') as file: file.write(json_string) ```
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值