Json的简单介绍
从结构上看,所有的数据最终都可以分成三种类型:
第一种类型是scalar(标量),也就是一个单独的string(字符串)或数字(numbers),比如“北京”这个单独的词。
第二种类型是sequence(序列),也就是若干个相关的数据按照一定顺序并列在一起,又叫做array(数组)或List(列表),比如“北京,东京”。
第三种类型是mapping(映射),也就是一个名/值对(Name/value),即数据有一个名称,还有一个与之相对应的值,这又称作hash(散列)或dictionary(字典),比如“首都:北京”。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它的规则非常简单并且是有趣的:
1) 并列的数据之间用逗号(“,”)分隔。
2) 映射用冒号(“:”)表示。
3) 并列数据的集合(数组)用方括号("[]")表示。
4) 映射的集合(对象)用大括号(“{}”)表示。
按照这个规则可以作以下理解:
1.数组用“[]”创建,对象用“{}”创建,并且使用Json基本都是用[]或者{}创建的数组或对象,否则一个普通的字符串是没有意义的;
2.无论是数组还是对象,之间的元素都用“,”隔开;
3.对象内部,(属性的)名称和值用“:”隔开,并且必须要用“:”隔开,不可单独存在属性名或者值;
4.对象和数组可以互相嵌套,即数组中的一个元素可以是一个对象也可以是一个数组,同理对象中的一个属性的值可以是一个对象也可以是一个数组。
二、事例
1.
var china= {beijing:{name:"北京",area:"16000",haidian:{name:"海淀区"}},
shanghai:{name:"上海",area:"10000",minhang:{name:"闵行区"}}};
alert(china.beijing.haidian.name);
alert(china.shanghai.minhang.name);
分别弹出“海淀区”和“闵行区”。
2.
var ourcountry=[["北京市"],["上海市"],["合肥市","芜湖市","蚌埠市"]];
alert(ourcountry[2][1]);
弹出“芜湖市”。
3.
var zhongguo={provinces:[{name:"北京",cities:[{name:"北京市",quxian:["海淀区","朝阳区","东城区","西城区"]}]},
{name:"安徽省",cities:[{name:"芜湖市",quxian:["繁昌县","芜湖县","南陵县","三山区"]},{name:"合肥市",quxian:["肥西县","蜀山区","庐阳区"]}]},
"湖北省"
]};
var str = "中国:{\n";
for(var i = 0; i < zhongguo.provinces.length; i++)
{
if(zhongguo.provinces.cities != null)
{
str += zhongguo.provinces.name + "{";
for(var j = 0; j < zhongguo.provinces.cities.length; j++)
{
if(zhongguo.provinces.cities[j] != null)
{
str += zhongguo.provinces.cities[j].name + "{";
for(var k = 0; k < zhongguo.provinces.cities[j].quxian.length; k++)
{
str += zhongguo.provinces.cities[j].quxian[k];
if(k != zhongguo.provinces.cities[j].quxian.length - 1)
{
str += ",";
}
}
str += "}";
}
}
str += "}\n";
}
}
str += "}";
alert(str);
弹出“
中国:{
北京{北京市{海淀区,朝阳区,东城区,西城区}}
安徽省{芜湖市{繁昌县,芜湖县,南陵县,三山区}合肥市{肥西县,蜀山区,庐阳区}}
}
”。
三、Json在Ajax中的应用
客户端可以给服务器端通过地址栏或者post很容易的提交数据,但是服务器端处理完数据之后,将计算的结果信息回传给客户端时就存在了一定的难度,特别是 数据量较大时。这个时候数据的格式成了关键,按照某种格式可以很方便的进行数据的组装,然后可以很方便的进行解析。使用Json便是一种很好的策略。在服 务器端,按照Json的格式拼装好一个字符串,响应给客户端。客户端如何进行解析呢?一般有两种策略(两种策略的名称是自己给的名字,不一定很合理,但是 思路应该是没有问题的):
1.直接解析
var json = eval('(' + result + ')');
通过上面这个表达式,就完成了将服务器端响应给客户端的Json格式的字符串解析成了一个Json(格式的)对象,名称为“json”,通过“json.”或者“json[]”的方式便可进行数据访问。
2.间接解析
var json = "r=" + result;
eval(json);
当然上面行代码可以合并为:eval("r=" + result);
通过上面的计算,也可以将服务器端响应给客户端的Json格式的字符串解析成了一个Json(格式的)对象,但是该对象名称为“r”,通过“r.”或者“r[]”的方式可进行数据访问。
总结:Json是一种简单的数据交换格式,它几乎可以很好的代替xml让服务器之间灵活的交换数据。
四、JavaScript中的数组和对象
在JavaScript中,通常用[]创建的数据格式称为数组,用{}创建的东西称为对象。
有一个数组a=[1,2,3,4],还有一个对象a={0:1,1:2,2:3,3:4},运行alert(a[1]),两种情况下的运行结果是相同的!这就是说,数据集合既可以用数组表示,也可以用对象表示,那么到底该用哪一种呢?
其实数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。
当然,数组和对象的另一个区别是,数组中的数据没有“名称”(name),对象中的数据有“名称”(name)。但是问题是,很多编程语言中,都有一种叫 做“关联数组”(associativearray)的东西。这种数组中的数据是有名称的。比如在javascript中,可以这样定义一个对象:
var a={"城市":"北京","面积":16800,有趣,"人口":1600};
但是,也可以定义成一个关联数组:
var a = new Array();
a["城市"]="北京";
a["面积"]=16800;
a["人口"]=1600;
这样一来好像数组和集合就没有区别了,其实不是,在Javascript语言中,关联数组就是对象,对象就是关联数组。通过第二种方式创建的数组和通过 []方式创建的数组是有很大的区别的,在第二个方式创建的“数组”中,也可以和第一种方式类似,通过“a.城市”来得到“北京”,“a.人口”来得到 “1600”,但是它和第一种方式创建的对象又是有区别的,通过第一种方式定义的a是没有length属性的,二通过第二种方式定义的a有,可是值为0, 可见里面的差别还是有的,要想具体搞清楚,恐怕得看看底层的一些实现代码了。
当 eval 返回的 json 值时,提示 Error: Invalid Label 摘要: 我们经常会在服务器端返回 json 格式的值,这样可以直接在脚本中当作完整的对象来使用,但是,许多新手通常都会遇到一个错误提示:Invalid Label ,这个问题通常会让人苦恼不堪,因为明明正确的 json 格式,却提示错误。如果你遇到此问题,那赶快看看本文的内容吧!
我们经常会在服务器端返回 json 格式的值,这样可以直接在脚本中当作完整的对象来使用,但是,许多新手通常都会遇到一个错误提示: Invalid Label ,这个问题通常会让人苦恼不堪,因为明明正确的 json 格式,却提示错误。
假如你从服务器端返回的是 json 格式的字符串:
>
当你在脚本中用 eval 的方式运行:
>
这时会提示 : Error: Invalid Label
实际上,我们的 json 格式并没有错误,只是在 eval 的时候,要把你的 json 值用 “()” 括号括起来:
> var result = eval("(" + o.responseText + ")"); help001
相关推荐
第五节 Amesim《直动型溢流阀HCD建模》HCD5 学习资料
利用HCD原则创建直动型溢流阀的界面。这可能包括图形化表示直动型溢流阀的工作原理、操作方式和调节方法。这样的界面应当直观且易于理解,使用户能够轻松了解阀门的功能和使用方法。
json库使用之数组
工作中json数组使用也是非常频繁,下面介绍几种常用到的数组类型。 1,json变量是数组 int main() { array1(); return 0; } void array1() { Json::Value array; array[0] = 1; array[1] = 2; array[2] = 3; Json::Value sub; sub["test"] = "test"; array[3] = sub;
QQ技术大总结
此贴只是一些对q友有用的东西,也许有人知道,高手勿喷。进如正题~ 1. 进入访问受限的qq空间 在地址栏里输入 http://qqxoo.com/main.html?qqid=qq号这样就可能看对方的空间 http://qqshow-user.tencent.com/qq号/11/00 看mm的qq绣 http://shuqian.qq.com/qq号/ qq书签 ...
JSON数组
一、对于JSON的理解: JSON,大部分都是用来处理JavaScript和web服务器端之间的数据交换,把后台web服务器的数据传递到前台,然后使用JavaScript进行处理,例如ajax等。 JSON,就是一种数据传输格式而已,无它,非常容易掌握。但是大家不要误以为JSON最大的用处是在前端,其实JSON最大的用处是处理JavaScript和web服务器端之间数据交换。 二、json结...
GIS国土工具实战:从地类分析到坐标转换,一站式解决项目难题
本文详细介绍了GIS国土工具在国土整治项目中的高效应用,涵盖地类分析、坐标转换、影像加载等核心功能。通过实战案例展示如何利用该工具快速处理shp与txt文件转换、智能比对三调二调数据,以及优化影像加载策略,显著提升项目效率。特别适合需要处理复杂国土数据的专业人员使用。
麒麟桌面操作系统QT开发环境搭建
麒麟操作系统安装Qt
JSON学习笔记-1
1.什么是JSON? JSON(JavaScriptObject Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,...
大数据实战:Python与MySQL在足球赔率分析中的高效应用
本文详细介绍了如何利用Python与MySQL进行大数据实战,实现足球赔率的高效分析。通过对比Excel处理的局限性,阐述了数据库在处理百万级数据时的速度优势。文章提供了从环境搭建、使用pymysql连接数据库、利用pandas进行数据清洗与分析,到构建自动化分析系统的完整流程,旨在帮助读者将大数据技术应用于实际业务场景,显著提升数据处理与洞察效率。
JSON 数组(array)
通过上面的示例可以看出,JSON 中数组与对象不同,对象是由若干键/值对组成,而数组则是由若干值构成的。数组中的值可以是 JSON 中的任意类型,在上面的示例中就分别使用了对象、数组、字符串、数字、布尔值等类型。定义,方括号中为数组中的若干值,值可以是 JSON 中支持的任意类型(例如字符串、数字、布尔值、对象、数组等),每个值之间使用逗号。数组是值的有序集合,JSON 中的数组与 JavaScript 中的数组相似,同样需要使用方括号。
OpenClaw用户必看:每天0成本使用OpenClaw!NVIDIA NIM免费大模型接入教程
🚀 OpenClaw接入NVIDIA NIM免费API!glm5、minimax-m2.5等大量模型任选,0成本升级AI助手!💰
《QGIS快速入门与应用基础》161:面要素顶点编辑与形状调整
本文系统讲解了QGIS中面要素顶点编辑与形状调整的核心操作。首先明确了顶点编辑的适用场景与核心概念,强调需满足图层类型、编辑模式、要素选择等六大前提。详细介绍了编辑顶点工具(F2键)的激活路径及配套辅助工具,通过耕地地块修正案例,分步骤演示顶点移动、添加(双击/工具栏)、删除(Delete键)三大基础操作。同时提供捕捉工具开启、画布缩放等实用技巧,帮助用户高效完成面要素的精细化调整,解决实际工作中的形状偏差问题。全文图文结合,步骤清晰,适合GIS新手快速掌握面要素编辑的核心技能。
JSON解析实战篇:JSON数组中含JSON数组
少年最好的地方就是:嘴里说着要放弃,心里却都憋着一口气。 前言 关于JSON和本文中所用的Fastjson介绍,可以查看我的这两篇博客: JSON简介:什么是JSON -> https://blog.youkuaiyun.com/Qizhi_Hu/article/details/105305616 JSON解析之Fastjson:https://blog.youkuaiyun.com/Qizhi_Hu/ar...
YOLOv13添加DRB模块map暴涨12.33!准确率提升8.56!召回率提升15.66
本文介绍了在YOLOv13模型中添加DRB模块的改进方法。实验结果显示,添加DRB模块后模型性能显著提升,mAP暴涨12.33%,准确率提升8.56%。文章详细说明了移植过程,包括创建yolov13-DRB.yaml配置文件、修改tasks.py和__init__.py文件,以及引入UniRepLKNet模块的具体实现。其中重点描述了GRNwithNHWC、NCHWtoNHWC等核心组件的实现细节,并提供了完整的模型结构配置代码。这些改进使得YOLOv13模型在保持原有架构优势的同时,获得了更强大的特征提取
JSON对象和JSON数组
JSON对象和JSON数组JSON对象对象遵循的语法规则访问对象值遍历对象嵌套的 JSON 对象JSON 对象的数组数组遵循的语法规则访问数组值遍历数组JSON 对象中的嵌套数组 JSON对象 对象遵循的语法规则 1、JSON 对象被花括号 {} 包围。 2、JSON 对象以键/值对书写。 3、键必须是字符串,值必须是有效的 JSON 数据类型(字符串、数字、对象、数组、布尔或 null)。 4、键和值由冒号分隔。 5、每个键/值对由逗号分隔。 text = {"name":"张三", "age":"fun
SAP B1中文培訓教材_SDK
公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说
android 蓝牙通讯demo
android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。
json数组对象和对象数组
json数组对象和对象数组 一、Json的简单介绍 从结构上看,所有的数据最终都可以分成三种类型: 第一种类型是scalar(标量),也就是一个单独的string(字符串)或数字(numbers),比如“北京”这个单独的词。 第二种类型是sequence(序列),也就是若干个相关的数据按照一定顺序并列在一起,又叫做array(数组)或List(列表),比如“北京,东京”。
Data-Structures-and-Algorithm-Analysis-in-Java.pdf
作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...
二、Json对象、Json数组和Json字符串
一、Json字符串和Json对象定义: 1、Json字符串: 所谓字符串:单引号或者双引号引起来,是一个String类型的字符串:如下: var person='{"name":"shily","sex":"女","age":"23"}';//json字符串 console.log(person) console.log(person.name) console.log(typeof person) 2、Json对象: 最显著的特征:对象的值可以用 “对象.属性” 进行访问,
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
cJson系列——json数组和json对象有什么区别
JSON 对象是一个无序的键值对集合,适合表示具有命名属性的数据结构。JSON 数组是一个有序的元素集合,适合表示数据的列表或序列。两者可以灵活地组合和嵌套,构建复杂的 JSON 数据结构。
Mysql——》提取JSON对象和数组
本文详细介绍了MySQL中处理JSON数据的常用方法。通过JSON_KEYS提取JSON对象的key,使用JSON_EXTRACT获取指定key的值,并结合JSON_UNQUOTE去除引号。对于JSON数组,展示了如何用JSON_TABLE展开数组元素,提取特定索引或所有元素的key值,以及使用GROUP_CONCAT合并结果。文中提供了完整的SQL示例,涵盖从简单JSON对象到复杂数组的处理场景,帮助开发者高效操作MySQL中的JSON数据。
Mysql JSON对象和JSON数组查询
Mysql JSON查询
ElasticSearch中存入JSON对象和对象数组
存入JSON对象 在现实中我们常常会遇到各种复杂对象,比如: { "region": "ZH-CN", "manager": { "age": 30, "name": { "first": "John", "last": "Smith" } } } 实际
json数组对象和对象数组详细介绍
本文由17javascript发布,主要介绍json数组对象和对象数组,希望对读者有所帮助。 一、Json的简单介绍 从结构上看,所有的数据最终都可以分成三种类型: 第一种类型是scalar(标量),也就是一个单独的string(字符串)或数字(numbers),比如“北京”这个单独的词。 第二种类型是sequence(序列),也就是若干个相关的数据按照一定顺序并列在一起,又
json对象(json对象和json数组)
使用Struts2的json插件转换对象的配置问题Action 你好,你可以跟客服去咨询一下。 java如果将一个文件变成json对象我有一个文件,需要通过ja google搜索gson 灰常好用的工具类 只要用GSON g = new GSON () g.toJSON(XXX);就可以了 GOOGLE上...
【json】json对象和json数组的操作
1、对json对象进行操作 $(function() { // json对象操作 var json = [] ; json["name"] = "wlm" ; json["age"] = 20 ; // 遍历 for(var k in json) { alert(k+", "+json[k]) ; } // 点操作和key值索引 alert(json
【json】数组和对象转换为json
<?php echo time().""; //一维数组转换json $arr1 = array("username"=>"zhangsan","age"=>"100"); $arr12Json = json_encode($arr1); print_r($arr1); echo ""; print_r($arr12Json); //二维数组转换json $arr2 = a
json java对象 简书_对象,json对象和数组
1.对象所谓对象,就是一种无序的数据集合,由若干个“键值对”(key-value)构成。var o = {name: 'mumu';age: 20;sex: 'female',};访问对象属性的方式:objName.property,property类型必须以_/字符开头,固定值,不能是变量objName['property'],property类型为任意类型,可以是数字,可以是变量,例如:var...
map和json数组以及JSON对象和的区别以及相互转换
在开发中经常需要存储或者传递一些数据,其中用的比较多的就是map和json,这两者之间长的非常像,都属于key和value的形式,二者有何区别与联系?可以相互转换吗?下面就来介绍一下map和json的区别以及二者相互转换的方法。map是K-V类型的数据,map有多种实现类,主要有hashmap、linkedhashmap、treemap等。 map实际上是有一个个entry对象组成,entry对象包含key、value、next、hash值,我们可以往key和value中put值,next指向当前entry
1330



被折叠的 条评论
为什么被折叠?



