转载请注明来源: http://blog.csdn.net/kjunchen/article/details/50961803

JSON简介

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON 是存储和交换文本信息的语法,类似XML,但是比XML更小、更快,更易解析。


JSON语法

JSON构建于两种结构:

  • “名称/值”对的集合(A collection of name/value pairs)。不同的编程语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。

  • 值的有序列表(An ordered list of values)。在大部分语言中,它被实现为数组(array),矢量(vector),列表(list),序列(sequence)。

对象(object) 是一个无序的“‘名称/值’对”集合。一个对象以“
{
”(左括号)开始,“ } ”(右括号)结束。每个“名称”后跟一个“ : ”(冒号);“‘名称/值’ 对”之间使用“
, ”(逗号)分隔。通过对象.名称获取值,值的类型可以是数字、字符串、数组、对象几种。

数组(array) 是值(value)的有序集合。一个数组以“ [ ”(左中括号)开始,“
] ”(右中括号)结束。值之间使用“ , ”(逗号)分隔。使用索引获取,值的类型可以是数字、字符串、数组、对象几种。

经过对象、数组两种结构可以组合成复杂的数据结构。

json语法规则是:数据在键值对中,数据由逗号分隔,花括号保存对象,方括号保存数组。

json数据书写格式是:名称/值。名称写在前面,值写在后面,都在双引号中,中间用冒号隔开。如

<code class="language-json hljs  has-numbering"><span class="hljs-string">"name"</span>:<span class="hljs-string">"JunkChen"</span></code><ul style="display: block;" class="pre-numbering"><li>1</li></ul>

json的值可以是:数字(整数或浮点数)、 字符串(在双引号中)、逻辑值(true或false)、
数组(在方括号中)、 对象(在花括号中)、
null


Json数据示例

Json对象

<code class="language-json hljs  has-numbering">{
"<span class="hljs-attribute">firstName</span>":<span class="hljs-value"><span class="hljs-string">"Junk"</span></span>,
"<span class="hljs-attribute">lastNmae</span>":<span class="hljs-value"><span class="hljs-string">"Chen"</span></span>,
"<span class="hljs-attribute">sex</span>":<span class="hljs-value"><span class="hljs-string">"male"</span></span>,
"<span class="hljs-attribute">age</span>":<span class="hljs-value"><span class="hljs-number">23</span>
</span>}</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li></ul>

那么,如何取值呢?假设我们给这个对象取名personObj,personObj.firstName = Junk , personObj.age = 23 。

如果用xml表示,如:

<code class="language-xml hljs  has-numbering"><span class="hljs-pi"><?xml version="1.0" encoding="utf-8"?></span>
<span class="hljs-tag"><<span class="hljs-title">person</span>></span>
<span class="hljs-tag"><<span class="hljs-title">firstName</span>></span>Junk<span class="hljs-tag"></<span class="hljs-title">firstName</span>></span>
<span class="hljs-tag"><<span class="hljs-title">lastName</span>></span>Chen<span class="hljs-tag"></<span class="hljs-title">lastName</span>></span>
<span class="hljs-tag"><<span class="hljs-title">sex</span>></span>male<span class="hljs-tag"></<span class="hljs-title">sex</span>></span>
<span class="hljs-tag"><<span class="hljs-title">sec</span>></span>23<span class="hljs-tag"></<span class="hljs-title">sex</span>></span>
<span class="hljs-tag"></<span class="hljs-title">person</span>></span></code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li></ul>

使用xml描述就比Json显得臃肿,xml中都是标记对形式,数据量肯定比Json大。如果用Json数组表示那就更简单了(如下)。

Json数组

<code class="language-json hljs  has-numbering">[
<span class="hljs-string">"Junk"</span>,<span class="hljs-string">"Chen"</span>,<span class="hljs-string">"male"</span>,<span class="hljs-number">23</span>
]</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li></ul>

如果这个数组取名为personArray,则 personArray[0] = Junk, personArray[2] = male 。

复合结构

<code class="language-json hljs  has-numbering">{
"<span class="hljs-attribute">person</span>":<span class="hljs-value">[<span class="hljs-string">"Junk"</span>,<span class="hljs-string">"Chen"</span>,<span class="hljs-string">"male"</span>,<span class="hljs-number">23</span>]</span>,
"<span class="hljs-attribute">cat</span>":
<span class="hljs-value">{
"<span class="hljs-attribute">name</span>":<span class="hljs-value"><span class="hljs-string">"Jon"</span></span>,
"<span class="hljs-attribute">age</span>":<span class="hljs-value"><span class="hljs-number">3</span>
</span>}</span>,
"<span class="hljs-attribute">province</span>":
<span class="hljs-value">[{
"<span class="hljs-attribute">name</span>":<span class="hljs-value"><span class="hljs-string">"广东"</span></span>,
"<span class="hljs-attribute">cities</span>":<span class="hljs-value">[<span class="hljs-string">"深圳"</span>,<span class="hljs-string">"广州"</span>,<span class="hljs-string">"珠海"</span>]
</span>},
{
"<span class="hljs-attribute">name</span>":<span class="hljs-value"><span class="hljs-string">"陕西"</span></span>,
"<span class="hljs-attribute">cities</span>":<span class="hljs-value">[<span class="hljs-string">"西安"</span>,<span class="hljs-string">"汉中"</span>,<span class="hljs-string">"咸阳"</span>]
</span>}]
</span>} </code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li></ul>

这个示例中,首先是一个Json对象,对象里面包含Json数组,Json数组里面又包含有Json对象,这样就构成了一个复杂结构的Json数据。


使用Gson快速解析Json数据

解析简单的Json数据使用JsonObject和JsonArray还可以,但是遇到复杂结构的Json数据,就很费力了,这时我们可以采用Gson进行Json数据解析。Gson是谷歌推出的Json解析的工具包。接下来就看个实例:

1、导入Gson jar包

下载Gson jar包,新建Java工程将下载jar包导入自己的工程。

Gson 2.6.2 Jar包下载: http://download.csdn.net/detail/kjunchen/9469938   

最新版Gson下载查找:https://github.com/google/gson

2、创建Java Bean类

新建Cat类,如下:
Cat.java

<code class="language-java hljs  has-numbering"><span class="hljs-keyword">package</span> me.jc.gson;

<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Cat</span> {</span>
<span class="hljs-keyword">private</span> String name;
<span class="hljs-keyword">private</span> String sex; <span class="hljs-keyword">public</span> String <span class="hljs-title">getName</span>() {
<span class="hljs-keyword">return</span> name;
} <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setName</span>(String name) {
<span class="hljs-keyword">this</span>.name = name;
} <span class="hljs-keyword">public</span> String <span class="hljs-title">getSex</span>() {
<span class="hljs-keyword">return</span> sex;
} <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setSex</span>(String sex) {
<span class="hljs-keyword">this</span>.sex = sex;
} <span class="hljs-keyword">public</span> <span class="hljs-title">Cat</span>(String name, String sex) {
<span class="hljs-keyword">super</span>();
<span class="hljs-keyword">this</span>.name = name;
<span class="hljs-keyword">this</span>.sex = sex;
} <span class="hljs-keyword">public</span> <span class="hljs-title">Cat</span>() {
<span class="hljs-keyword">super</span>();
} <span class="hljs-annotation">@Override</span>
<span class="hljs-keyword">public</span> String <span class="hljs-title">toString</span>() {
<span class="hljs-keyword">return</span> <span class="hljs-string">"Cat [name="</span> + name + <span class="hljs-string">", sex="</span> + sex + <span class="hljs-string">"]"</span>;
} }</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li><li>35</li><li>36</li><li>37</li><li>38</li></ul>

Cat类中设置字段名为name和sex。

新建Dog类,如下:
Dog.java

<code class="language-java hljs  has-numbering"><span class="hljs-keyword">package</span> me.jc.gson;

<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Dog</span> {</span>
<span class="hljs-keyword">private</span> String name;
<span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> age; <span class="hljs-keyword">public</span> String <span class="hljs-title">getName</span>() {
<span class="hljs-keyword">return</span> name;
} <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setName</span>(String name) {
<span class="hljs-keyword">this</span>.name = name;
} <span class="hljs-keyword">public</span> <span class="hljs-keyword">int</span> <span class="hljs-title">getAge</span>() {
<span class="hljs-keyword">return</span> age;
} <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setAge</span>(<span class="hljs-keyword">int</span> age) {
<span class="hljs-keyword">this</span>.age = age;
} <span class="hljs-keyword">public</span> <span class="hljs-title">Dog</span>(String name, <span class="hljs-keyword">int</span> age) {
<span class="hljs-keyword">super</span>();
<span class="hljs-keyword">this</span>.name = name;
<span class="hljs-keyword">this</span>.age = age;
} <span class="hljs-keyword">public</span> <span class="hljs-title">Dog</span>() {
<span class="hljs-keyword">super</span>();
} <span class="hljs-annotation">@Override</span>
<span class="hljs-keyword">public</span> String <span class="hljs-title">toString</span>() {
<span class="hljs-keyword">return</span> <span class="hljs-string">"Dog [name="</span> + name + <span class="hljs-string">", age="</span> + age + <span class="hljs-string">"]"</span>;
} }</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li><li>35</li><li>36</li><li>37</li><li>38</li></ul>

Dog类中同样设置字段名为name和sex。

新建Person类,如下:
Person.java

<code class="language-java hljs  has-numbering"><span class="hljs-keyword">package</span> me.jc.gson;

<span class="hljs-keyword">import</span> java.util.Arrays;

<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Person</span> {</span>
<span class="hljs-keyword">private</span> <span class="hljs-keyword">int</span> id;
<span class="hljs-keyword">private</span> String name;
<span class="hljs-keyword">private</span> String sex;
<span class="hljs-keyword">private</span> <span class="hljs-keyword">long</span>[] phone;
<span class="hljs-keyword">private</span> Cat cat;
<span class="hljs-keyword">private</span> Object object; <span class="hljs-keyword">public</span> <span class="hljs-title">Person</span>() {
} <span class="hljs-keyword">public</span> <span class="hljs-title">Person</span>(<span class="hljs-keyword">int</span> id, String name, String sex) {
<span class="hljs-keyword">super</span>();
<span class="hljs-keyword">this</span>.id = id;
<span class="hljs-keyword">this</span>.name = name;
<span class="hljs-keyword">this</span>.sex = sex;
} <span class="hljs-keyword">public</span> <span class="hljs-keyword">int</span> <span class="hljs-title">getId</span>() {
<span class="hljs-keyword">return</span> id;
} <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setId</span>(<span class="hljs-keyword">int</span> id) {
<span class="hljs-keyword">this</span>.id = id;
} <span class="hljs-keyword">public</span> String <span class="hljs-title">getName</span>() {
<span class="hljs-keyword">return</span> name;
} <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setName</span>(String name) {
<span class="hljs-keyword">this</span>.name = name;
} <span class="hljs-keyword">public</span> String <span class="hljs-title">getSex</span>() {
<span class="hljs-keyword">return</span> sex;
} <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setSex</span>(String sex) {
<span class="hljs-keyword">this</span>.sex = sex;
} <span class="hljs-keyword">public</span> <span class="hljs-keyword">long</span>[] <span class="hljs-title">getPhone</span>() {
<span class="hljs-keyword">return</span> phone;
} <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setPhone</span>(<span class="hljs-keyword">long</span>[] phone) {
<span class="hljs-keyword">this</span>.phone = phone;
} <span class="hljs-keyword">public</span> Cat <span class="hljs-title">getCat</span>() {
<span class="hljs-keyword">return</span> cat;
} <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setCat</span>(Cat cat) {
<span class="hljs-keyword">this</span>.cat = cat;
} <span class="hljs-keyword">public</span> Object <span class="hljs-title">getObject</span>() {
<span class="hljs-keyword">return</span> object;
} <span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">setObject</span>(Object object) {
<span class="hljs-keyword">this</span>.object = object;
} <span class="hljs-annotation">@Override</span>
<span class="hljs-keyword">public</span> String <span class="hljs-title">toString</span>() {
<span class="hljs-keyword">return</span> <span class="hljs-string">"Person [id="</span> + id + <span class="hljs-string">", name="</span> + name + <span class="hljs-string">", sex="</span> + sex
+ <span class="hljs-string">", phone="</span> + Arrays.toString(phone) + <span class="hljs-string">", cat="</span> + cat
+ <span class="hljs-string">", object="</span> + object + <span class="hljs-string">"]"</span>;
} }</code><ul style="display: block;" class="pre-numbering"><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li><li>29</li><li>30</li><li>31</li><li>32</li><li>33</li><li>34</li><li>35</li><li>36</li><li>37</li><li>38</li><li>39</li><li>40</li><li>41</li><li>42</li><li>43</li><li>44</li><li>45</li><li>46</li><li>47</li><li>48</li><li>49</li><li>50</li><li>51</li><li>52</li><li>53</li><li>54</li><li>55</li><li>56</li><li>57</li><li>58</li><li>59</li><li>60</li><li>61</li><li>62</li><li>63</li><li>64</li><li>65</li><li>66</li><li>67</li><li>68</li><li>69</li><li>70</li><li>71</li><li>72</li><li>73</li><li>74</li><li>75</li><li>76</li><li>77</li><li>78</li></ul>

Person类中设置字段名为id、name、sex、phone、cat、object,这个Person中包含了Cat对象,还有个Object对象,从而构成了一个相对复杂的对象。到目前为止,似乎好像跟Json没什么关系,那么接下来我们看看如何使用Gson解析Json数据。

注意:

  • 1、如果Java Bean类中有内部嵌套的类必须用static进行修饰;
  • 2、类中的属性名必须跟Json字段里面的名称(Key)是一样的。

3、使用Gson解析Json

新建测试类GsonTest,创建Gson对象,Gson提供toJson()方法将一个JavaBean实例对象转换成Json数据,通过Gson.fromJson()方法将Json数据还原成JavaBean实例对象。

GsonTest.java

<code class="language-java hljs  has-numbering"><span class="hljs-keyword">package</span> me.jc.gson;

<span class="hljs-keyword">import</span> com.google.gson.Gson;

<span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">GsonTest</span> {</span>

    <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">main</span>(String[] args) {
Gson gson = <span class="hljs-keyword">new</span> Gson();<span class="hljs-comment">//实例化Gson对象</span> Person person = <span class="hljs-keyword">new</span> Person(<span class="hljs-number">1</span>, <span class="hljs-string">"JunkChen"</span>, <span class="hljs-string">"male"</span>);<span class="hljs-comment">//实例化Person对象</span>
person.setPhone(<span class="hljs-keyword">new</span> <span class="hljs-keyword">long</span>[] { <span class="hljs-number">17802900000</span>l, <span class="hljs-number">17802900001</span>l });
Cat cat = <span class="hljs-keyword">new</span> Cat(<span class="hljs-string">"wangwang"</span>, <span class="hljs-string">"female"</span>);<span class="hljs-comment">//实例化Cat对象</span>
Dog dog = <span class="hljs-keyword">new</span> Dog();<span class="hljs-comment">//实例化Dog对象</span>
dog.setAge(<span class="hljs-number">20</span>);
person.setCat(cat);
person.setObject(dog);
System.out.println(gson.toJson(person));<span class="hljs-comment">//将Person对象转换成Json对象数据</span>
System.out.println(); String json = <span class="hljs-string">"{\"phone\":[17802900000, 17802900001],\"id\":1,\"cat\":{\"name\":\"wangwang\"},\"sex\":\"female\",\"name\":\"Junk\",\"object\":{\"name\":\"doggg\",\"age\":12}}"</span>;<span class="hljs-comment">//Json格式的数据</span>
Person fromJson = gson.fromJson(json, Person.class);<span class="hljs-comment">//使用Gson将Json数据转换成Person对象</span>
System.out.println(fromJson.toString());
System.out.println(); System.out.println(gson.fromJson(gson.toJson(fromJson.getObject()), Dog.class));
}
}</code><ul style="display: block;" class="pre-numbering"><li>1<span id="transmark"></span></li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li></ul>

运行结果如下图所示:

OK,如果你之前是使用JsonObjectJsonArray进行Json数据解析的,那么看了这个是不是觉得Json数据解析很简单呢。只要根据Json数据创建相应的Java Bean对象,然后使用Gson轻轻松松搞定Json数据解析。赶快去试试吧。

Json解析的工具类还有很多,除了谷歌Gson外,还有阿里的FastJson也很好用。使用方法大同小异,具体用哪个自己决定。


欢迎加qq群讨论:365532949

HomePage:http://junkchen.com

使用Gson轻松解决复杂结构的Json数据解析的更多相关文章

  1. 多叉树结构:JSON数据解析(二)

    多叉树结构:JSON数据解析(二) 在上篇文章中提到了JSON数据解析的基本方法,但是方法效率太低,这里接着上篇文章写写如何利用多叉树结构,定义对象,实现JSON数据字段快速随机访问. JSON数据通 ...

  2. 多叉树结构:JSON数据解析(一)

    多叉树结构:JSON数据解析(一) 最近做一个实时数据搜索引擎的项目中,在项目架构的偏顶层需要写一个JSON数据解析的模块,由于目前JSON解析没有现成统一开源框架可以利用,目前只是手工利用com.a ...

  3. JSON数据解析(GSON方式) (转)

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 在上一篇博文<Andro ...

  4. 利用nodejs读取数据库数据生成树结构的json数据

    在做后台管理界面的时候,几乎少不了的一个结构就是树形结构,用来做菜单导航: 那么,最希望的就是树结构的所有数据都是读取的数据库,而不是直接代码当中写死,那我们就一步一步来看: 一,建表 字段通常包括: ...

  5. Android JSON数据解析(GSON方式)

    要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使用GSON,可以很容易的将一串JSON数据转换为一个Jav ...

  6. iOS - JSON 数据解析

     iOS - JSON 数据解析 前言 NS_CLASS_AVAILABLE(10_7, 5_0) @interface NSJSONSerialization : NSObject @availab ...

  7. Silverlight项目笔记7:xml/json数据解析、TreeView、引用类型与数据绑定错误、图片加载、虚拟目录设置、silverlight安全机制引发的问题、WebClient缓存问题

    1.xml/json数据解析 (1)xml数据解析 使用WebClient获取数据,获取到的数据实例化为一个XDocument,使用XDocument的Descendants(XName)方法获得对应 ...

  8. Android学习笔记之JSON数据解析

    转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种 ...

  9. [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [四] JSON数据解析

    [DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 场景模拟 假设由于漏存JD SKU对应的店铺信息.这时我们需要重新完全采集所有 ...

随机推荐

  1. angularJs十个面试题

    一.ng-show/ng-hide 与 ng-if的区别? 我们都知道ng-show/ng-hide实际上是通过display来进行隐藏和显示的.而ng-if实际上控制dom节点的增删除来实现的.因此 ...

  2. 2018年Java面试题搜集

    2018年Java面试题搜集 一.Servlet执行流程(浏览器访问servlet的过程容器) 客户端发起http请求,web服务器将请求发送到servlet容器,servlet容器解析url并根据w ...

  3. 【bzoj3170】[Tjoi2013]松鼠聚会(数学题)

    题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=3170 这道题要在n个点中求一个点使其他点到该点的切比雪夫距离最小. 有个结论:$ (x ...

  4. java基础(2)--进制

    进制 进制基础, 目的:理解计算机只能处理2进制的数据和指令 1)10进制计数规律 数字: 0 1 2 3 4 5 6 7 8 9 基数:10 权:  1000 100 10 1 权是基数的n次幂 2 ...

  5. JNI_Z_09_Java的字符串

    ZC: jstring 就是 Java中的String对象 ZC: 10.8 Unicode字符串结尾(http://www.360doc.cn/article/14233282_321497569. ...

  6. C++ 进阶学习 ——模板

    模板和重载类似,比重载更省事 通常有两种形式:函数模板和类模板: 函数模板针对仅参数类型不同的函数: 类模板针对仅数据成员和成员函数类型不同的类. 一个简单的函数模板 template <cla ...

  7. PHP处理会话函数session和cookie总结

    本教程讲解PHP处理会话函数session和cookie总结 PHP处理会话函数包括:session_start.session_register.session_is_registered.sess ...

  8. LeetCode第[10]题(Java):Regular Expression Matching

    题目:匹配正则表达式 题目难度:hard 题目内容:Implement regular expression matching with support for '.' and '*'. '.' Ma ...

  9. javascript 对象简单介绍(二)

    JavaScript Array(数组) 对象数组对象的作用是:使用单独的变量名来存储一系列的值. 什么是数组?数组对象是使用单独的变量名来存储一系列的值.如果你有一组数据(例如:车名字),存在单独变 ...

  10. JQuery 全选 取消

    $('#chkAllProp').click(function () { $("input[id*='chkSelect']").prop("checked", ...