JSON初体验

最近用老斯基的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依赖包

  1. 打开官网json.org
  2. 在网站底部找到JSON-JAVA下载,得到一个zip包
  3. 用eclipse新建项目,把zip里的java文件复制到项目中,打包成jar文件

然后添加依赖包

  1. 打开项目
  2. 在根目录新建lib文件夹
  3. 把jar文件复制到lib文件夹
  4. 右键项目点Build Path,点Add External Archives...
  5. 找到选中这个jar文件就行了。
  6. 也可以不添加依赖包,直接把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,就可以完成账号的快速设置

添加新评论