返回顶部
首页 > 资讯 > 精选 >JSON基础知识点有哪些
  • 803
分享到

JSON基础知识点有哪些

2023-06-27 11:06:55 803人浏览 八月长安
摘要

这篇文章主要讲解了“JSON基础知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jsON基础知识点有哪些”吧!JSON是javascript Object Notation的简称,

这篇文章主要讲解了“JSON基础知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jsON基础知识点有哪些”吧!

JSONjavascript Object Notation的简称,中文含义为“JavaScript 对象表示法”,它是一种数据交换的文本格式,而不是一种编程语言。JSON 是一种轻量级的数据交换格式,它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

JSON基础知识点有哪些

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基础知识点有哪些

3,修改JSON中的数据

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

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

修改后的JSON如图。 JSON基础知识点有哪些

4,删除JSON中的数据

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

function Delete() {delete obj.count;}

删除后的JSON如图

JSON基础知识点有哪些

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

5,遍历JSON对象

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

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

程序输出结果为: JSON基础知识点有哪些

.net中如何使用JSON

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

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

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

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

JSON基础知识点有哪些JSON基础知识点有哪些

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

protected void Page_Load(object sender, EventArgs e)       {           using (L2SDBDataContext db = new L2SDBDataContext())           {               List studentList = new List();               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);           }       }

输出结果

JSON基础知识点有哪些

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

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

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

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

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

使用LINQ to JSON前,需要引用Newtonsoft.Json的dll和using 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 studentList = new List();               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();           }       }

输出结果为:

JSON基础知识点有哪些

3,处理客户端提交的JSON数据

客户端提交过来的数据一般都是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 = @"

“; string tpl =

“”; foreach (JObject jObject in jsonObj) { message += String.FORMat(tpl, jObject[“StudentID”], jObject[“Name”],jObject[“Hometown”]); } message += “

StudentIDNameHometown
{0}{1}{2}

“; lbMsg.Innerhtml = message; }

输出结果:

JSON基础知识点有哪些

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

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

感谢各位的阅读,以上就是“JSON基础知识点有哪些”的内容了,经过本文的学习后,相信大家对JSON基础知识点有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: JSON基础知识点有哪些

本文链接: https://lsjlt.com/news/309916.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JSON基础知识点有哪些
    这篇文章主要讲解了“JSON基础知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JSON基础知识点有哪些”吧!JSON是JavaScript Object Notation的简称,...
    99+
    2023-06-27
  • Mysql基础知识点有哪些
    这篇文章主要介绍Mysql基础知识点有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!数据库的特点?数据结构化 ,数据之间具有联系,面向整个系统;数据的共享性高,冗余度低,易扩充;...
    99+
    2024-04-02
  • InnoDB基础知识点有哪些
    这篇文章给大家分享的是有关InnoDB基础知识点有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、关于count(*)知识点:MyISAM会直接存储总行数,InnoDB则不...
    99+
    2024-04-02
  • Redis基础知识点有哪些
    本篇内容介绍了“Redis基础知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 什么是Red...
    99+
    2024-04-02
  • XHTML基础知识点有哪些
    本篇内容介绍了“XHTML基础知识点有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 一.HTML实...
    99+
    2024-04-02
  • html基础知识点有哪些
    这篇文章主要介绍了html基础知识点有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。HTML语义化HTML标签的语义化是指:通过使用包含...
    99+
    2024-04-02
  • jQuery基础知识点有哪些
    这篇文章将为大家详细讲解有关jQuery基础知识点有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。jQuery语法实例$(this).hide()jQuery 的 h...
    99+
    2024-04-02
  • CSS基础知识点有哪些
    这篇文章主要为大家展示了“CSS基础知识点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS基础知识点有哪些”这篇文章吧。CSS3 选择器选择器可以被分...
    99+
    2024-04-02
  • Angular8基础知识点有哪些
    这篇文章给大家分享的是有关Angular8基础知识点有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Angular CLI又称 Angular脚手架,用于快速生成项目或者组件...
    99+
    2024-04-02
  • JavaScript基础知识点有哪些
    这篇文章主要介绍“JavaScript基础知识点有哪些”,在日常操作中,相信很多人在JavaScript基础知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java...
    99+
    2024-04-02
  • css3基础知识点有哪些
    这篇文章主要讲解了“css3基础知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css3基础知识点有哪些”吧! div > p 选择父元素...
    99+
    2024-04-02
  • Node.js基础知识点有哪些
    这篇文章给大家分享的是有关Node.js基础知识点有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Node.js是什么根据Node.js官方网站的描述,“Node.js是一套...
    99+
    2024-04-02
  • MongoDB基础知识点有哪些
    这篇文章主要介绍MongoDB基础知识点有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!NO.1 Linux下MongoDB的安装   Linux下MongoDB的安装还算简单,总体可以分为如...
    99+
    2023-06-14
  • VBS基础知识点有哪些
    这篇文章给大家分享的是有关VBS基础知识点有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。VBScript(Microsoft Visual Basic Script Editon).,微软公司可视化BASI...
    99+
    2023-06-08
  • XML基础知识点有哪些
    本篇内容主要讲解“XML基础知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“XML基础知识点有哪些”吧!XML 被设计用来描述数据,其焦点是数据的内容。XML 被设计用来描述数据,其焦...
    99+
    2023-06-12
  • Hibernate基础知识点有哪些
    这篇文章主要介绍“Hibernate基础知识点有哪些”,在日常操作中,相信很多人在Hibernate基础知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Hibernate基础知识点有哪些”的疑惑有所...
    99+
    2023-06-17
  • Shell基础知识点有哪些
    今天小编给大家分享一下Shell基础知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Shell 是一个 C 语言编...
    99+
    2023-06-27
  • iptables基础知识点有哪些
    这篇文章主要介绍了iptables基础知识点有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇iptables基础知识点有哪些文章都会有所收获,下面我们一起来看看吧。iptables可以适用于所有的Linux...
    99+
    2023-06-28
  • Python基础知识点有哪些
    本篇内容主要讲解“Python基础知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python基础知识点有哪些”吧!Python程序文件结构程序→模块→语句→表达式Python的关键要...
    99+
    2023-06-02
  • Java基础知识点有哪些
    这篇文章主要介绍“Java基础知识点有哪些”,在日常操作中,相信很多人在Java基础知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java基础知识点有哪些”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作