问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

json是什么意思

发布网友 发布时间:2022-04-20 17:37

我来回答

7个回答

懂视网 时间:2022-04-29 16:20

JSON详解:

JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据交换格式,但是在JS(JavaScript的简写)中处理XML非常不方便,同时XML标记比数据多,增加了交换产生的流量,而JSON没有附加的任何标记,在JS中可作为对象处理,所以我们更倾向于选择JSON来交换数据。这篇文章主要从以下几个方面来说明JSON。

1,JSON的两种结构
2,认识JSON字符串
3,在JS中如何使用JSON
4,在.NET中如何使用JSON
5,总结

一、JSON的两种结构

JSON有两种表示结构,对象和数组。
对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如代码。

{
 key1:value1,
 key2:value2,
 ...
}

其中关键字是字符串,而值可以是字符串,数值,true,false,null,对象或数组

数组结构以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如代码。

[
 {
 key1:value1,
 key2:value2 
 },
 {
  key3:value3,
  key4:value4 
 }
]

二、认识JSON字符串

之前我一直有个困惑,分不清普通字符串,json字符串和json对象的区别。经过一番研究终于给弄明白了。比如在js中。

字符串:这个很好解释,指使用“”双引号或’’单引号包括的字符。例如:var comStr = 'this is string';
json字符串:指的是符合json格式要求的js字符串。例如:var jsonStr = "{StudentID:'100',Name:'tmac',Hometown:'usa'}";
json对象:指符合json格式要求的js对象。例如:var jsonObj = { StudentID: "100", Name: "tmac", Hometown: "usa" };

三、在JS中如何使用JSON

JSON是JS的一个子集,所以可以在JS中轻松地读,写JSON。读和写JSON都有两种方法,分别是利用”.”操作符和“[key]”的方式。
我们首先定义一个JSON对象,代码如下。

var obj = {
  1: "value1",
  "2": "value2",
  count: 3,
  person: [ //数组结构JSON对象,可以嵌套使用
   {
    id: 1,
    name: "张三"
   },
   {
    id: 2,
    name: "李四"
   }
   ],
  object: { //对象结构JSON对象
  id: 1,
  msg: "对象里的对象" 
  }
 };

1、从JSON中读数据

function ReadJSON() {
  alert(obj.1); //会报语法错误,可以用alert(obj["1"]);说明数字最好不要做关键字
  alert(obj.2); //同上

  alert(obj.person[0].name); //或者alert(obj.person[0]["name"])
  alert(obj.object.msg); //或者alert(obj.object["msg"])
 }

2、向JSON中写数据

比如要往JSON中增加一条数据,代码如下:

function Add() { 
  //往JSON对象中增加了一条记录
  obj.sex= "男" //或者obj["sex"]="男"
 }

增加数据后的JSON对象如图:

JSON.jpg

3、修改JSON中的数据

我们现在要修改JSON中count的值,代码如下:

function Update() {
  obj.count = 10; //或obj["count"]=10
 }

修改后的JSON如图:

JSON01.jpg

4、删除JSON中的数据

我们现在实现从JSON中删除count这条数据,代码如下:

function Delete() {  
 delete obj.count;//或obj["count"]
}

删除后的JSON如图:

JSON02.jpg

可以看到count已经从JSON对象中被删除了。

5、便利JSON对象

可以使用for…in…循环来遍历JSON对象中的数据,比如我们要遍历输出obj对象的值,代码如下:

function Traversal() {
  for (var c in obj) {
  console.log(c + ":", obj[c]);
  }
}

程序输出结果为:

JSON03.jpg

四、在.NET中如何使用JSON

说到在.net中使用JSON,就不得不提到JSON.NET,它是一个非常著名的在.net中处理JSON的工具,我们最常用的是下面两个功能。

1、通过序列化将.NET对象转换为JSON字符串

在web开发过程中,我们经常需要将从数据库中查询到的数据(一般为一个集合,列表或数组等)转换为JSON格式字符串传回客户端,这就需要进行序列化,这里用到的是JsonConvert对象的SerializeObject方法。

其语法格式为:JsonConvert.SerializeObject(object)

代码中的”object”就是要序列化的.net对象,序列化后返回的是json字符串。

比如,现在我们有一个TStudent的学生表,表中的字段和已有数据如图所示

JSON04.jpg

JSON05.jpg

从表中我们可以看到一共有五条数据,现在我们要从数据库中取出这些数据,然后利用JSON.NET的JsonConvert对象序列化它们为json字符串,并显示在页面上。C#代码如下

protected void Page_Load(object sender, EventArgs e)
 {  using (L2SDBDataContext db = new L2SDBDataContext())
  {
  List<Student> studentList = new List<Student>();  var query = from s in db.TStudents    select new { 
    StudentID=s.StudentID,
    Name=s.Name,
    Hometown=s.Hometown,
    Gender=s.Gender,
    Brithday=s.Birthday,
    ClassID=s.ClassID,
    Weight=s.Weight,
    Height=s.Height,
    Desc=s.Desc
    };  foreach (var item in query)
  {
   Student student = new Student { StudentID=item.StudentID,Name=item.Name,Hometown=item.Hometown,Gender=item.Gender,Brithday=item.Brithday,ClassID=item.ClassID,Weight=item.Weight,Height=item.Height,Desc=item.Desc};
   studentList.Add(student);
  }
  lbMsg.InnerText = JsonConvert.SerializeObject(studentList);
  }
 }

输出结果为:

JSON06.jpg

从图中我们可以看到,数据库中的5条记录全部取出来并转化为json字符串了。

2,使用LINQ to JSON定制JSON数据

使用JsonConvert对象的SerializeObject只是简单地将一个list或集合转换为json字符串。但是,有的时候我们的前端框架比如ExtJs对服务端返回的数据格式是有一定要求的,比如下面的数据格式,这时就需要用到JSON.NETLINQ to JSON,LINQ to JSON的作用就是根据需要的格式来定制json数据。

比如经常用在分页的json格式如代码:

{ 
 "total": 5, //记录总数
 "rows":[
 //json格式的数据列表
 ]
}

使用LINQ to JSON前,需要引用Newtonsoft.Jsondllusing Newtonsoft.Json.Linq的命名空间。LINQ to JSON主要使用到JObject, JArray, JProperty和JValue这四个对象,JObject用来生成一个JSON对象,简单来说就是生成”{}”,JArray用来生成一个JSON数组,也就是”[]”,JProperty用来生成一个JSON数据,格式为key/value的值,而JValue则直接生成一个JSON值。下面我们就用LINQ to JSON返回上面分页格式的数据。代码如下:

protected void Page_Load(object sender, EventArgs e)
 {
  using (L2SDBDataContext db = new L2SDBDataContext())
  {
  //从数据库中取出数据并放到列表list中
  List<Student> studentList = new List<Student>();
  var query = from s in db.TStudents
    select new
    {
    StudentID = s.StudentID,
    Name = s.Name,
    Hometown = s.Hometown,
    Gender = s.Gender,
    Brithday = s.Birthday,
    ClassID = s.ClassID,
    Weight = s.Weight,
    Height = s.Height,
    Desc = s.Desc
    };
  foreach (var item in query)
  {
   Student student = new Student { StudentID = item.StudentID, Name = item.Name, Hometown = item.Hometown, Gender = item.Gender, Brithday = item.Brithday, ClassID = item.ClassID, Weight = item.Weight, Height = item.Height, Desc = item.Desc };
   studentList.Add(student);
  }

  //基于创建的list使用LINQ to JSON创建期望格式的JSON数据
  lbMsg.InnerText = new JObject(
   new JProperty("total",studentList.Count),
   new JProperty("rows",
    new JArray(
     //使用LINQ to JSON可直接在select语句中生成JSON数据对象,无须其它转换过程
     from p in studentList
     select new JObject(
      new JProperty("studentID",p.StudentID),
      new JProperty("name",p.Name),
      new JProperty("homeTown",p.Hometown)
      )
     )
    )
   ).ToString();
  }
 }

输出结果为:

JSON07.jpg

3、处理客户端提交的客户端数据

客户端提交过来的数据一般都是json字符串,有了更好地进行操作(面向对象的方式),所以我们一般都会想办法将json字符串转换为json对象。例如客户端提交了以下数组格式json字符串。

[
 {StudentID:"100",Name:"aaa",Hometown:"china"},
 {StudentID:"101",Name:"bbb",Hometown:"us"},
 {StudentID:"102",Name:"ccc",Hometown:"england"}
]

在服务端就可以使用JObject或JArray的Parse方法轻松地将json字符串转换为json对象,然后通过对象的方式提取数据。下面是服务端代码。

protected void Page_Load(object sender, EventArgs e)
 {
  string inputJsonString = @"
  [
   {StudentID:'100',Name:'aaa',Hometown:'china'},
   {StudentID:'101',Name:'bbb',Hometown:'us'},
   {StudentID:'102',Name:'ccc',Hometown:'england'}
  ]";
  JArray jsonObj = JArray.Parse(inputJsonString);
  string message = @"<table border='1'>
   <tr><td width='80'>StudentID</td><td width='100'>Name</td><td width='100'>Hometown</td></tr>";
  string tpl = "<tr><td>{0}</td><td>{1}</td><td>{2}</td></tr>";
  foreach (JObject jObject in jsonObj)
  {
  message += String.Format(tpl, jObject["StudentID"], jObject["Name"],jObject["Hometown"]);
  }
  message += "</table>";
  lbMsg.InnerHtml = message;
 }

输出结果为:

JSON08.jpg

当然,服务端除了使用LINQ to JSON来转换json字符串外,也可以使用JsonConvertDeserializeObject方法。如下面代码实现上面同样的功能。

List<Student> studentList = JsonConvert.DeserializeObject<List<Student>>(inputJsonString);//注意这里必须为List<Student>类型,因为客户端提交的是一个数组json
  foreach (Student student in studentList)
  {
  message += String.Format(tpl, student.StudentID, student.Name,student.Hometown);
  }

总结:

在客户端,读写json对象可以使用”.”操作符或”["key”]”,json字符串转换为json对象使用eval()函数。
在服务端,由.net对象转换json字符串优先使用JsonConvert对象的SerializeObject方法,定制输出json字符串使用LINQ to JSON。由json字符串转换为.net对象优先使用JsonConvert对象的DeserializeObject方法,然后也可以使用LINQ to JSON。

想了解更多相关内容请访问PHP中文网:JSON视频教程

热心网友 时间:2022-04-29 13:28

json的意思就是一种轻量级的数据交换格式。其中的具体情况如下:

它基于ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

简洁和清晰的层次结构使得json成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

扩展资料

据了解,json的交互方式主要分为:

1、同步交互

发送一个请求,需要等待返回,然后才能够发送下一个请求,有个等待过程;

2、异步交互

发送一个请求,不需要等待返回,随时可以再发送下一个请求,即不需要等待。

由此看来,区别在于一个需要等待,一个不需要等待,在部分情况下,项目开发中都会优先选择不需要等待的异步交互方式。

热心网友 时间:2022-04-29 14:46

JSON 是一种轻量级的数据交换格式。它基于 ECMAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

同时也易于机器解析和生成。基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON是Douglas Crockford在2001年开始推广使用的数据格式,在2005年-2006年正式成为主流的数据格式,雅虎和谷歌就在那时候开始广泛地使用JSON格式。



相关信息

任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型。

对象:对象在 JS 中是使用花括号包裹 {} 起来的内容,数据结构为 {key1:value1, key2:value2, ...} 的键值对结构。在面向对象的语言中,key 为对象的属性,value 为对应的值。键名可以使用整数和字符串来表示。值的类型可以是任意类型。

数组:数组在 JS 中是方括号 [] 包裹起来的内容,数据结构为 ["java", "javascript", "vb", ...] 的索引结构。在 JS 中,数组是一种比较特殊的数据类型,它也可以像对象那样使用键值对,但还是索引使用得多。同样,值的类型可以是任意类型。

热心网友 时间:2022-04-29 16:21

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

热心网友 时间:2022-04-29 18:12

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。它是基于 JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999 的一个子集。 JSON采用完全独立于程序语言的文本格式,但是也使用了类C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
有一些json相关网站你可以参考一下:
https://json.org, json官方网站
https://json.org.cn,json中文网
https://json123.net, json工具网

热心网友 时间:2022-04-29 20:20

MySQL 从 5.7 开始,增加了新的数据类型:JSON。
JSON 类型的出现,弥补了 MySQL 长期以来相比其他关系型数据库的非标准化特性略势,比如可以用 JSON 来实现类似字典、数组等类型。以及之后大量针对 JSON 类型字串的相关遍历方法与函数。
比如对数组来说,简单的遍历路径为 "$[数组小标]" 或者 "$[*]" 来一次性遍历所有元素。MySQL 8.0 又新增了对于数组元素的范围遍历,比如 "$[m to n]",表示遍历下标为 m 到 n 的元素。

热心网友 时间:2022-04-29 22:45

可以试试这个,可以打开本地json,直接展示在线上 :
sunzhongmou/json-editor-online-command-line-tool

JSON在线编缉器命令行工具-解放你的双手
对于JSON这种明星来说,哪哪儿都有对TA无微不至的关怀。各种IDE里已经成了标配、各种在线工具也是体贴入微,该有的功能都有了。
但对于我这种懒人来说,这还是不够简单,还是太麻烦:
打开本地文件,我还得双击或者右击打开文件。
打开了后还得拷贝
拷贝好后还得打开网站(首先我得记得住),然后再粘贴到线上编缉器
整修流程还是太繁琐,有没有一种方法,或者一条命令,让我一下子把这些事全都帮我干了?
当然有,下面为大家推荐一个好用的命令行工具:
官方 NPM package
安装:npm install -g json-editor-online
使用:json <filename.json>

一条命令,解决所有烦恼。不谢!
相关操作视频:
Youtube
Youku
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
胶原蛋白线双眼皮是不是永久性 双眼皮埋线是蛋白质还是尼龙绳-双眼皮埋线蛋白线多久能吸收 人体输液的“港口”完全植入式输液港 双眼皮宽变窄修复的方法 同心保家庭重疾险靠不靠谱?便宜吗? 做完双眼皮一宽一窄怎么办 喝全脂奶粉对长高有没有什么好处? redmine中“选择一个项目..."下拉列表框中为什么只列出一个项目,我建... 南充市龙门中学实力现在怎样?他的奥赛班是重点班么? 感情中为什么总是不知足呢? 请问vivoZ1青春版支持OTG功能吗? vivoz1和vivoz1青春版的手机壳一样吗 vivoz1青春版手机和小米8青春版手机哪个好,性价比... vivoz1青春版支持多大外加sd卡? QQ邮箱的星标邮件是干什么用的? vivoy89和vivoz1青春版是不是一个手机,为什么价格... vivoz1青春版和Y3标准版哪个好? vivoZ1青春版玩王者和吃鸡怎么样 是vivo z1青春版好还是荣耀7c好? vivoz1青春版和华为8cla哪个好 vivoz1青春版和荣耀9i那个好? vivoZ1青春版,官网为什么没有这个手机型号? vivo z1青春版6 64g多少钱 vivoz1青春版是什么,新上市的手机吗,跟小米8青春... vivo z1什么时候上市时间 vivoz1青春版 QQ星标邮件是什么 高德导航如何设置让车头朝上? 手机 高德地图没有原路返回 功能?什么地图有这个... 请问怎么设置导航可以记住走过的路一次还可以导航... json是什么 解析json是什么意思 json格式 什么是JSON 什么事JSON格式:看了半天也没看明白到底什么事jso... java中的json是什么意思 json 格式问题 json格式解析 是个什么格式的数据 json数据 请问Java中json是什么? 如何自己在家清洗地毯 长毛地毯如何清洗和漂白? 客厅地毯自己在家怎样清洗? 北京洗地毯哪家方法是什么.自己如何清洗地毯 开荒保洁不如自己做 开荒保洁自己怎么做 洗地工作日记? 无人驾驶洗地机会自己洗地了! 老婆拖地总说太累,有没有好用的拖把,拖地干净,... 装修开荒保洁自己能做吗? 如何自己洗车?