最近用老斯基的SS,发现用手机扫描他网站上的二维码,就可以快速的把SS账号设置到手机上,原来用的是JSON数据交换格式,于是去简单学习了JSON,现在总结一下JSON的数据格式规范,以及如何在JAVA上使用它。
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
{
"car": false,
"name": "李四",
"girlFirend": "翠花",
"age": 18,
"major":["汽修","计算机","心理学"]
"house":null
}
这是一个JSON对象
“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
JSON对象里的JSON数据要用{}
包围:
的前面是数据的名称:
的后面是值values
每条数据用,
分隔
值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
这里的number没有细分浮点数小数什么的,直接把数字甩进去就OK了
JSON中没有//或者/**/什么的注释语法,不过可以用数据的形式,比如
{
"comments":"这是一条注释"
}
OK,说说怎么在JAVA中生成/解析JSON吧
首先下载org.json依赖包
- 打开官网json.org
- 在网站底部找到JSON-JAVA下载,得到一个zip包
- 用eclipse新建项目,把zip里的java文件复制到项目中,打包成jar文件
然后添加依赖包
- 打开项目
- 在根目录新建lib文件夹
- 把jar文件复制到lib文件夹
- 右键项目点Build Path,点Add External Archives...
- 找到选中这个jar文件就行了。
- 也可以不添加依赖包,直接把java文件复制到你的项目中,用前一种方法方便以后复用。
生成\解析JSON数据的JAVA代码
package jsonExperience;
import java.io.IOException;
import java.util.ArrayList;
import org.json.JSONObject;
public class JSONSimple {
public static void main(String[] args) throws IOException {
/*
* 生成JSON数据
*/
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "李四");//添加一条姓名叫李四的数据进去
jsonObject.put("age", 18);//添加一条年龄等于18岁的数据进去
ArrayList<String> list = new ArrayList<>();
list.add("计算机");
list.add("挖掘机");
jsonObject.put("major", list);//把李四的技能添加进去
String string = jsonObject.toString();//把JSON数据输出为String
System.out.println("生成的JSON数据:" + string + "\n");//打印生成的JSON数据
/*
* 解析刚才生成的string
*/
JSONObject parsing = new JSONObject(string);
System.out.println("姓名:"+parsing.getString("name"));
System.out.println("年龄:"+parsing.getInt("age"));
System.out.println("专业:"+parsing.getJSONArray("major"));
}
}
打印结果就是
生成的JSON数据:{"major":["计算机","挖掘机"],"name":"李四","age":18}
姓名:李四
年龄:18
专业:["计算机","挖掘机"]
为了代码的复用性,还是用java bean比较好,new JSONObject()
支持直接把java bean放进去
把生成的JSON数据转换成二维码,手机扫描后解析JSON,就可以完成账号的快速设置