2019独角兽企业重金招聘Python工程师标准>>>

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

一、准备工作

json是个非常重要的数据结构,在web开发中应用十分广泛。我觉得每个人都应该好好的去研究一下json的底层实现,分析一下json的相关内容,希望大家能有所收获。首先给大家说一下使用json前的准备工作,需要准备下面的六个jar包:

这里我统一下好打包了,可以在这里来下http://download.csdn.net/detail/evankaka/8865633

需要说明几点:
(1)json-lib最新版本可以从这个地方下载:http://sourceforge.net/projects/json-lib/files/json-lib/
(2)ezmorph是一个简单的java类库,用于将一种bean转换成另外一种bean。其动态bean的实现依赖于commons-beanutils包。ezmorph可以在这个地方下载源码:http://sourceforge.net/projects/ezmorph/files/ezmorph/
(3)commons-beanutils是操作Java Bean的类库,依赖于commons-collections。可以从这里下载:http://commons.apache.org/proper/commons-beanutils/download_beanutils.cgi

(4)commons-collections类库是各种集合类和集合工具类的封装。可以从这里下载:http://commons.apache.org/proper/commons-collections/download_collections.cgi

二、语法相关

  • JSON 语法规则

JSON 语法是 JavaScript 对象表示法语法的子集。
        数据在名称/值对中
       数据由逗号分隔
      花括号保存对象
      方括号保存数组

  • JSON 值

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

  • JSON有两种表示结构

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

[javascript]  view plain copy
  1. {
  2. key1:value1,
  3. key2:value2,
  4. ...
  5. }

[html]  view plain copy
  1. {"department":"产品研发","name":"小王","age":23}

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

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

[html]  view plain copy
  1. [
  2. {
  3. key1:value1,
  4. key2:value2
  5. },
  6. {
  7. key3:value3,
  8. key4:value4
  9. }
  10. ]

如:

[html]  view plain copy
  1. [{"department":"产品研发","name":"小王","age":23},{"department":"产品研发","name":"小王","age":23}]

三、Java中使用Json基本使用方法

工程免费下载

Jar包我也上传了,在这里http://download.csdn.net/detail/evankaka/8865633

整个工程目录 如下 :

Employer.java如下

[java]  view plain copy
  1. package com.mucfc.json;
  2. import net.sf.json.JSONString;
  3. public class Employer {
  4. private String name;
  5. private Integer age;
  6. private String department;
  7. public String getName() {
  8. return name;
  9. }
  10. public void setName(String name) {
  11. this.name = name;
  12. }
  13. public Integer getAge() {
  14. return age;
  15. }
  16. public void setAge(Integer age) {
  17. this.age = age;
  18. }
  19. public String getDepartment() {
  20. return department;
  21. }
  22. public void setDepartment(String department) {
  23. this.department = department;
  24. }
  25. @Override
  26. public String toString() {
  27. return "Employer [name=" + name + ", age=" + age + ", department="
  28. + department + "]";
  29. }
  30. /*  @Override  要调用这个方法请implements JSONString
  31. public String toJSONString() {
  32. return "{\"name\":\"" + name + "\",\"department\":\"" + department + "\"}";
  33. }*/
  34. }

JsonTest.java全部代码如下:

[java]  view plain copy
  1. package com.mucfc.json;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import net.sf.json.JSONArray;
  7. import net.sf.json.JSONObject;
  8. import net.sf.json.JsonConfig;
  9. import net.sf.json.util.PropertyFilter;
  10. /**
  11. *Json使用方法总结
  12. *@author linbingwen(博客:http://blog.csdn.net/evankaka)
  13. *@since 2015.7.3
  14. */
  15. public class JsonTest {
  16. public static void main(String args[]){
  17. beanToJson();
  18. beanToJson1();
  19. beanToJson2();
  20. arrayToJson();
  21. listToJson();
  22. mapToJson();
  23. }
  24. /**
  25. * bean对象转json
  26. * @return void
  27. */
  28. public static void beanToJson(){
  29. Employer employer=new Employer();
  30. employer.setName("小王");
  31. employer.setAge(23);
  32. employer.setDepartment("产品研发");
  33. JSONObject json = JSONObject.fromObject(employer);
  34. System.out.println("-----------------------------------------beanToJson() 开始------------------------------------------------");
  35. System.out.println(json.toString());
  36. System.out.println("-----------------------------------------beanToJson() 结束------------------------------------------------");
  37. }
  38. /**
  39. * bean对象转json,带过滤器
  40. * @return void
  41. */
  42. public static void beanToJson1(){
  43. Employer employer=new Employer();
  44. employer.setName("小王");
  45. employer.setAge(23);
  46. employer.setDepartment("产品研发");
  47. JsonConfig jsonConfig = new JsonConfig();
  48. jsonConfig.setExcludes(new String[]
  49. { "age" });
  50. JSONObject json = JSONObject.fromObject(employer, jsonConfig);
  51. System.out.println("-----------------------------------------beanToJson1()带过滤器 开始------------------------------------------------");
  52. System.out.println(json.toString());
  53. System.out.println("-----------------------------------------beanToJson1()带过滤器 结束------------------------------------------------");
  54. }
  55. /**
  56. * bean对象转json,带过滤器
  57. * @return void
  58. */
  59. public static void beanToJson2(){
  60. Employer employer=new Employer();
  61. employer.setName("小王");
  62. employer.setAge(23);
  63. employer.setDepartment("产品研发");
  64. JsonConfig jsonConfig = new JsonConfig();
  65. jsonConfig.setJsonPropertyFilter(new PropertyFilter() {
  66. public boolean apply(Object source, String name, Object value)
  67. {
  68. return source instanceof Employer && name.equals("age");
  69. }
  70. });
  71. JSONObject json = JSONObject.fromObject(employer, jsonConfig);
  72. System.out.println("-----------------------------------------beanToJson2() 带过滤器 开始------------------------------------------------");
  73. System.out.println(json.toString());
  74. System.out.println("-----------------------------------------beanToJson2() 带过滤器 结束------------------------------------------------");
  75. }
  76. /**
  77. * array对象转json
  78. * @return void
  79. */
  80. public static void arrayToJson(){
  81. Employer employer1=new Employer();
  82. employer1.setName("小王");
  83. employer1.setAge(23);
  84. employer1.setDepartment("产品研发");
  85. Employer employer2=new Employer();
  86. employer2.setName("小王");
  87. employer2.setAge(23);
  88. employer2.setDepartment("产品研发");
  89. Employer[] employers=new Employer[]{employer1,employer2};
  90. JSONArray json = JSONArray.fromObject(employers);
  91. System.out.println("-----------------------------------------arrayToJson() 开始------------------------------------------------");
  92. System.out.println(json.toString());
  93. System.out.println("-----------------------------------------arrayToJson() 结束------------------------------------------------");
  94. }
  95. /**
  96. * list对象转json
  97. * @return void
  98. */
  99. public static void listToJson(){
  100. List<String> list = new ArrayList<String>();
  101. list.add( "first" );
  102. list.add( "second" );
  103. JSONArray json = JSONArray.fromObject(list);
  104. System.out.println("-----------------------------------------listToJson() 开始------------------------------------------------");
  105. System.out.println(json.toString());
  106. System.out.println("-----------------------------------------listToJson() 结束------------------------------------------------");
  107. }
  108. /**
  109. * map对象转json
  110. * @return void
  111. */
  112. public static void mapToJson(){
  113. Map<Object,Object> map = new HashMap<Object,Object>();
  114. map.put("name", "json");
  115. map.put("bool", Boolean.TRUE);
  116. map.put("int", new Integer(1));
  117. map.put("arr", new String[] { "a", "b" });
  118. map.put("func", "function(i){ return this.arr[i]; }");
  119. JSONObject json = JSONObject.fromObject(map);
  120. System.out.println("-----------------------------------------mapToJson() 开始------------------------------------------------");
  121. System.out.println(json.toString());
  122. System.out.println("-----------------------------------------mapToJson() 结束------------------------------------------------");
  123. }
  124. }

下面分别对各个部分来进行说明

1. Bean转换成json代码

[java]  view plain copy
  1. /**
  2. * bean对象转json
  3. * @return void
  4. */
  5. public static void beanToJson(){
  6. Employer employer=new Employer();
  7. employer.setName("小王");
  8. employer.setAge(23);
  9. employer.setDepartment("产品研发");
  10. JSONObject json = JSONObject.fromObject(employer);
  11. System.out.println("-----------------------------------------beanToJson() 开始------------------------------------------------");
  12. System.out.println(json.toString());
  13. System.out.println("-----------------------------------------beanToJson() 结束------------------------------------------------");
  14. }

运行结果如下:

2. 数组转换成json代码

[java]  view plain copy
  1. /**
  2. * array对象转json
  3. * @return void
  4. */
  5. public static void arrayToJson(){
  6. Employer employer1=new Employer();
  7. employer1.setName("小王");
  8. employer1.setAge(23);
  9. employer1.setDepartment("产品研发");
  10. Employer employer2=new Employer();
  11. employer2.setName("小王");
  12. employer2.setAge(23);
  13. employer2.setDepartment("产品研发");
  14. Employer[] employers=new Employer[]{employer1,employer2};
  15. JSONArray json = JSONArray.fromObject(employers);
  16. System.out.println("-----------------------------------------arrayToJson() 开始------------------------------------------------");
  17. System.out.println(json.toString());
  18. System.out.println("-----------------------------------------arrayToJson() 结束------------------------------------------------");
  19. }

运行结果如下:

3. List集合转换成json方法

[java]  view plain copy
  1. /**
  2. * list对象转json
  3. * @return void
  4. */
  5. public static void listToJson(){
  6. List<String> list = new ArrayList<String>();
  7. list.add( "first" );
  8. list.add( "second" );
  9. JSONArray json = JSONArray.fromObject(list);
  10. System.out.println("-----------------------------------------listToJson() 开始------------------------------------------------");
  11. System.out.println(json.toString());
  12. System.out.println("-----------------------------------------listToJson() 结束------------------------------------------------");
  13. }

运行结果如下:
                                           

4. Map集合转换成json方法

[java]  view plain copy
  1. /**
  2. * map对象转json
  3. * @return void
  4. */
  5. public static void mapToJson(){
  6. Map<Object,Object> map = new HashMap<Object,Object>();
  7. map.put("name", "json");
  8. map.put("bool", Boolean.TRUE);
  9. map.put("int", new Integer(1));
  10. map.put("arr", new String[] { "a", "b" });
  11. map.put("func", "function(i){ return this.arr[i]; }");
  12. JSONObject json = JSONObject.fromObject(map);
  13. System.out.println("-----------------------------------------mapToJson() 开始------------------------------------------------");
  14. System.out.println(json.toString());
  15. System.out.println("-----------------------------------------mapToJson() 结束------------------------------------------------");
  16. }

运行结果如下:
                                         

四、JSONObject的过滤设置

通常对一个json串和java对象进行互转时,经常会有选择性的过滤掉一些属性值。例如下面的类:

[java]  view plain copy
  1. package com.mucfc.json;
  2. public class Employer {
  3. private String name;
  4. private Integer age;
  5. private String department;
  6. public String getName() {
  7. return name;
  8. }
  9. public void setName(String name) {
  10. this.name = name;
  11. }
  12. public Integer getAge() {
  13. return age;
  14. }
  15. public void setAge(Integer age) {
  16. this.age = age;
  17. }
  18. public String getDepartment() {
  19. return department;
  20. }
  21. public void setDepartment(String department) {
  22. this.department = department;
  23. }
  24. @Override
  25. public String toString() {
  26. return "Employer [name=" + name + ", age=" + age + ", department="
  27. + department + "]";
  28. }
  29. }

如果我想过滤age属性怎么办?

方法一:实现JSONString接口

[java]  view plain copy
  1. package com.mucfc.json;
  2. import net.sf.json.JSONString;
  3. public class Employer implements JSONString{
  4. private String name;
  5. private Integer age;
  6. private String department;
  7. public String getName() {
  8. return name;
  9. }
  10. public void setName(String name) {
  11. this.name = name;
  12. }
  13. public Integer getAge() {
  14. return age;
  15. }
  16. public void setAge(Integer age) {
  17. this.age = age;
  18. }
  19. public String getDepartment() {
  20. return department;
  21. }
  22. public void setDepartment(String department) {
  23. this.department = department;
  24. }
  25. @Override
  26. public String toString() {
  27. return "Employer [name=" + name + ", age=" + age + ", department="
  28. + department + "]";
  29. }
  30. @Override
  31. public String toJSONString() {
  32. return "{\"name\":\"" + name + "\",\"department\":\"" + department + "\"}";
  33. }
  34. }

方法二:设置jsonconfig实例,对包含和需要排除的属性进行添加或删除。

[java]  view plain copy
  1. /**
  2. * bean对象转json,带过滤器
  3. * @return void
  4. */
  5. public static void beanToJson1(){
  6. Employer employer=new Employer();
  7. employer.setName("小王");
  8. employer.setAge(23);
  9. employer.setDepartment("产品研发");
  10. JsonConfig jsonConfig = new JsonConfig();
  11. jsonConfig.setExcludes(new String[]
  12. { "age" });
  13. JSONObject json = JSONObject.fromObject(employer, jsonConfig);
  14. System.out.println("-----------------------------------------beanToJson1()带过滤器 开始------------------------------------------------");
  15. System.out.println(json.toString());
  16. System.out.println("-----------------------------------------beanToJson1()带过滤器 结束------------------------------------------------");
  17. }

方法三:使用propertyFilter实例过滤属性

[java]  view plain copy
  1. /**
  2. * bean对象转json,带过滤器
  3. * @return void
  4. */
  5. public static void beanToJson2(){
  6. Employer employer=new Employer();
  7. employer.setName("小王");
  8. employer.setAge(23);
  9. employer.setDepartment("产品研发");
  10. JsonConfig jsonConfig = new JsonConfig();
  11. jsonConfig.setJsonPropertyFilter(new PropertyFilter() {
  12. public boolean apply(Object source, String name, Object value)
  13. {
  14. return source instanceof Employer && name.equals("age");
  15. }
  16. });
  17. JSONObject json = JSONObject.fromObject(employer, jsonConfig);
  18. System.out.println("-----------------------------------------beanToJson2() 带过滤器 开始------------------------------------------------");
  19. System.out.println(json.toString());
  20. System.out.println("-----------------------------------------beanToJson2() 带过滤器 结束------------------------------------------------");
  21. }

java工程下载

五、JavaScript中使用JSON

本节工程免费下载

JSON 最常见的用法之一,是从 web 服务器上读取 JSON 数据(作为文件或作为 HttpRequest),将 JSON 数据转换为 JavaScript 对象,然后在网页中使用该数据。

之前我一直有个困惑,分不清普通字符串

1、json字符串和json对象的区别。
字符串:这个很好解释,指使用“”双引号或’’单引号包括的字符。例如: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" };

2、JSON 实例 - 来自字符串的对象

创建包含 JSON 语法的 JavaScript 字符串:

[html]  view plain copy
  1. var txt = '{ "employees" : [' +
  2. '{ "firstName":"John" , "lastName":"Doe" },' +
  3. '{ "firstName":"Anna" , "lastName":"Smith" },' +
  4. '{ "firstName":"Peter" , "lastName":"Jones" } ]}';

由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:

[html]  view plain copy
  1. var obj = eval ("(" + txt + ")");

如下格式:

[html]  view plain copy
  1. <!DOCTYPE html>
  2. <html>
  3. <body>
  4. <h2>Create Object from JSON String</h2>
  5. <p>
  6. First Name: <span id="fname"></span><br>
  7. Last Name: <span id="lname"></span><br>
  8. </p>
  9. <script>
  10. var txt = '{"employees":[' +
  11. '{"firstName":"John","lastName":"Doe" },' +
  12. '{"firstName":"Anna","lastName":"Smith" },' +
  13. '{"firstName":"Peter","lastName":"Jones" }]}';
  14. var obj = eval ("(" + txt + ")");
  15. document.getElementById("fname").innerHTML=obj.employees[1].firstName
  16. document.getElementById("lname").innerHTML=obj.employees[1].lastName
  17. </script>
  18. </body>
  19. </html>

输出结果:

不过eval解析json有安全隐患!现在大多数浏览器(IE8及以上,Chrome和Firefox差不多全部)自带原生JSON对象,提供JSON.parse()方法解析JSON,提供JSON.stringify()方法生成JSON,请使用这两个方法!

如果担心parse()对对象抛异常,可以加一个封装函数:

[javascript]  view plain copy
  1. JSON.pParse = function( tar ) {
  2. if( typeof( tar ) === 'string' ) {
  3. return JSON.parse( tar );
  4. } else {
  5. return tar;
  6. }
  7. };

1、从JSON中读数据

[javascript]  view plain copy
  1. //1,从JSON中读数据
  2. function ReadJSON() {
  3. alert(obj.key1);
  4. alert(obj.key2);
  5. alert(obj.person[0].name); //或者alert(obj.person[0]["name"])
  6. alert(obj.object.msg); //或者alert(obj.object["msg"])
  7. }

2、增加JSON中的数据

[javascript]  view plain copy
  1. function Add() {
  2. //往JSON对象中增加了一条记录
  3. obj.sex= "男" //或者obj["sex"]="男"
  4. alert(obj.sex);
  5. }

3、更新JSON中的数据
function Update() {
    obj.count = 10; //或obj["count"]=10
}

4、删除JSON中的数据

[javascript]  view plain copy
  1. function Delete() {
  2. delete obj.count;
  3. }

5、遍历JSON中的数据

[javascript]  view plain copy
  1. function Traversal() {
  2. for (var c in obj) {
  3. console.log(c + ":", obj[c]);
  4. }
  5. }

六、XML与JSON对比

  • XML定义

扩展标记语言 (Extensible Markup Language, XML),用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML使用DTD(document type definition)文档类型定义来组织数据;?格式统一,跨平台和语言,早已成为业界公认的标准。
XML是标准通用标记语言(SGML) 的子集,非常适合Web 传输。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

  • JSON定义

JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换。JSON采用兼容性很高的、完全独立于语言文本格式,同时也具备类似于C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)体系的行为。这些特性使JSON成为理想的数据交换语言。
JSON基于JavaScript Programming Language , Standard ECMA-262 3rd Edition - December 1999的一个子集。

  • XML和JSON优缺点

(1).XML的优缺点
<1>.XML的优点
A.格式统一,符合标准;
B.容易与其他系统进行远程交互,数据共享比较方便。
<2>.XML的缺点
A.XML文件庞大,文件格式复杂,传输占带宽;
B.服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护;
C.客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码;D.服务器端和客户端解析XML花费较多的资源和时间。

  • JSON的优缺点

<1>.JSON的优点:
A.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;B.易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取;C.支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析;D.在PHP世界,已经有PHP-JSON和JSON-PHP出现了,偏于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能直接生成JSON格式,便于客户端的访问提取;E.因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。
<2>.JSON的缺点
A.没有XML格式这么推广的深入人心和喜用广泛,没有XML那么通用性;
B.JSON格式目前在Web Service中推广还属于初级阶段。

转载于:https://my.oschina.net/zhanghaiyang/blog/606201

Json学习总结(1)——Java和JavaScript中使用Json方法大全相关推荐

  1. java中的感叹号是_[Java教程]javascript中的2个感叹号的用法

    [Java教程]javascript中的2个感叹号的用法 0 2014-04-15 19:00:09 !!是逻辑"非非",即是在逻辑"非"的基础上再" ...

  2. JS/JavaScript中解析JSON --- JSON.parse()、JSON.stringify()以及$.parseJSON()使用详解

    JS/JavaScript中解析JSON --- JSON.parse().JSON.stringify()以及$.parseJSON()使用详解 现在JSON格式在web开发中非常重要,特别是在使用 ...

  3. 在JavaScript中解析JSON? [重复]

    本文翻译自:Parse JSON in JavaScript? [duplicate] This question already has answers here : 这个问题已经在这里有了答案 : ...

  4. java引用类型和值类型_[Java教程]JavaScript中值类型和引用类型的区别

    [Java教程]JavaScript中值类型和引用类型的区别 0 2017-02-24 00:00:35 JavaScript的数据类型分为两类:原始类型和对象类型.其中,原始类型包括:数字.字符串和 ...

  5. 在JavaScript中使用json.js:访问JSON编码的某个值

    演示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3. ...

  6. JavaScript学习笔记06【高级——JavaScript中的事件】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  7. java script的图片隐藏,java和javascript中过滤掉img形式的字符串不显示图片的方法...

    本文实例讲述了java和javascript中过滤掉img形式的字符串不显示图片的方法.分享给大家供大家参考.具体实现方法如下: 1. javascript过滤掉和形式的字符串 复制代码代码如下: 过 ...

  8. java中分支_[Java教程]JavaScript中的分支结构

    [Java教程]JavaScript中的分支结构 0 2016-06-30 23:03:37 说到JavaScript中的分支结构,我们就不得不提到流程控制这个词,我们所有的程序都是由数据和算法组成的 ...

  9. 在 JavaScript 中创建 JSON 对象

    <html> <body> <h2>在 JavaScript 中创建 JSON 对象</h2><p> Name: <span id=& ...

最新文章

  1. 程序员眼中的电脑和空调 | 每日趣闻
  2. 学习 TList 类的实现[5]
  3. php 负载监控_PHP监控linux服务器负载
  4. web安全之文件上传漏洞攻击与防范方法
  5. 区块链从入门到放弃系列教程-涵盖密码学,超级账本,以太坊,Libra,比特币等持续更新
  6. 教师节 | 程序员都这么玩,你敢挑战吗?
  7. java 实体类规范_实体类的规范
  8. 连接Mysql弹出2005_正确安装数据库SQL2005和安装出现的问题的解决方法
  9. latex中的对号和错号
  10. 每一个tab切换的都是一个新的组件刷新
  11. 亿图图示最新po解直装版(附教程)
  12. photoshop cs6 界面字体太小解决方法
  13. 错误:“应用程序无法启动,因为应用程序的并行配置不正确。请参阅应用程序事件日志,或使用命令行sxstrace.exe工具” 的解决
  14. linux查看是否安装了dns,Linux系统怎么查看和修改DNS配置
  15. 77GHz毫米波雷达快速chirp信号技术(五):CAPON Beamforming
  16. Win10系统重装教程(纯净版)
  17. 秋天远程控制V1.0源码(易语言)
  18. 创始人之间应该如何量化分配股权?
  19. PS 页面描述性语言PostScript
  20. 解决 required a bean of type ‘com.aliyun.oss.OSSClient‘ that could not be found

热门文章

  1. Linux 文件安全之随机数生成器
  2. 每周一荐:foobar2000, 奇幻人生, 一个Flash小游戏
  3. JQuery果然是神器,这里顺便测试一下我发现的那个漏洞!
  4. android LinkedList的基本用法
  5. 机器学习中的凸优化理论
  6. Animation插值器:解决Android Animation 循环执行的停顿问题
  7. 【.NET正则表达式库】v1.0上线
  8. 获取ini内容 GetPrivateProfileString GetPrivateProfileInt
  9. [CQOI 2006]线段树之简单题
  10. [转]Socket的阻塞模式和非阻塞模式