JSON 语法是 JavaScript 对象的表达方式,我们又简单的分为JSONObject 和 JSONArray 其实都是JSON 对象的表达方式,只是从结构上做了区分。
PS:如果您是要得到Java中 JSON-Lib 中 JSONObject 的相关信息,请点击这个链接==>JSONObject。
{"domain":"sojson.com"}
{"domain":"sojson.com","author":"soゝso","email":"i@itboy.net"}
{"domain_array":["sojson.com","soso.pub","soso.run","isoso.xin","isoso.xin"]}
JSON 对象在花括号中,对象可以包含多个名称/值对,如下代码所示:
{ "name": "本兮", "age": 22, "birthday": "1994年6月30日", }
这一点也容易理解,与这条 JavaScript 语句等价:
name = "本兮"; age = 22; birthday = "1994年6月30日";
在上面的例子中,对象 "star_male" 是包含三个对象的数组。每个对象代表一条关于一个明星(姓名和年龄)的记录。
因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。
var json = { "name": "本兮", "age": "22" }
获取name和age:
var name = json.name; alert("name:" + json.name); var age = json.age; alert("age:" + json.age);
当我们对象里有特殊的Key,或者不是字符串的Key,处理起来稍微有点麻烦。
就上面的Demo,我们取name,那么就是json.name
就可以取到“本兮”。其实很好理解这个点“.”就是类似于“的”的感觉,json的name。这么理解是不是很好理解?
那么问题来了,如果JSON如下数据,你们可以试试。
var json = { "1": { "name": "本兮", "age": "22" }, "2": { "name": "关晓彤", "age": "20" } }; alert(json.1.name);// X 错误 throw Uncaught SyntaxError;
按我们刚刚的逻辑直接点,那么我们要取到“关晓彤”就应该是。json.1.name
吧,但是你会发现报错,错误信息应该是Uncaught SyntaxError
,语法错误,请自行测试,那么正确应该怎么获取呢?
//正确的打开姿势如下: alert(json[1].name); alert(json["1"].name); alert(json["1"]["name"]); //错误,undefined alert(json["1"][name]);
其实上面看出了一个问题,那么就是数值可以不带引号,String必须带引号,再次强调:严格来讲是双引号,个别弱语言支持单引号。
严格来讲是双引号,个别弱语言支持单引号。还有一个问题就是,弱语言除了String类型,其他的明确类型不用单引号或者双引号。把上面的Demo在弱语言里可以这么写,比如在Javascript中可以这么写,没有任何瑕疵。
var json = { 1: { "name": "本兮", "age": "22" }, 2: { "name": "关晓彤", "age": "20" } }
我们再来尝试获取一次。
结果已经看到了,其实没问题,所以要区分强弱语言的问题,建议还是强烈要求自己,按规范来,这样肯定没毛病。
注意:其他的我就不多说了,其实都是一样,比如boolen类型的Key,null类型的Key都是一样的处理方式。
版权所属:SOJSON(原创文章)
原文地址:https://www.sojson.com/json/json_object.html
转载时必须以链接形式注明原始出处及本声明。
综合技术交流:点击加入--> [SO JSON官方交流①群][收费]
综合技术交流:点击加入--> [SO JSON官方交流②群][免费]
要求:不能发广告、暴力、政治、付费教程,违者直接踢出。
备注:入群费用5元,没有QQ钱包,可以先支付宝
or 微信
扫码支付5元赞助后,我拉您进去。QQ联系我。
扫码赞助:赞助二维码。
技术交流QQ群:①群259217951,②群166848545
站长邮箱:so@sojson.com
对页面内容有任何疑问和建议,请联系我们。
所有赞助/开支都讲公开明细,用于网站维护:赞助名单查看
正在加载... ...