Java中JSON的操作

简介

JSON:JavaScript对象表示法(JavaScript Object Notation)。
是储存和交换文本信息的语法。

  • JSON是轻量级的文本数据交换格式。
  • JSON独立于语言和平台。
  • JSON具有自我描述性,更易理解。

JSON与XML
类似XML,比XML更小、更快、更易解析。
- 没有结束标签
- 更短
- 读写速度更快
- 使用数组
- 不使用保留字

JSON语法
JSON语法是JavaScript对象表示法语法的子集。

  • 数据在名称/值对中。
  • 数据由逗号分隔。
  • 花括号保存对象。
  • 方括号保存数组。

JSON的值可以是:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true或false)
  • 数组
  • 对象
  • NULL

比如:
JSON对象

{"firstName":"John","lastName":"Doe"}

JSON数组在方括号中书写,数组中可以包含对个对象。

{
    "employees":[
        {"firstName":"John","lastName":"Doe"},
        {"firstName":"Anna","lastName":"Smith"},
        {"firstName":"Peter","lastName":"Johns"}
        ]
}

在Java中读取和创建JSON数据
在读取时首先要创建JSON解析器,用JsonParser类来创建,然后用它可以来解析文件或者字符串中的json数据。
举个例子:

{"cat":"it",
    "languages":[
        {"id":1,"name":"Java","ide":"Eclipse"},
        {"id":2,"name":"Swift","ide":"XCode"},
        {"id":3,"name":"C#","ide":"Vistual Studio"}
        ],
        "pop":true
}

用java来解析这段JSON数据:

import java.io.FileNotFoundException;
import java.io.FileReader;

import com.google.gson.JsonArray;
import com.google.gson.JsonIOException;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonSyntaxException;

public class ReadJson {
    public static void main(String[] args) {

        try {
            //JSON解析器
            JsonParser parser = new JsonParser();
            JsonObject object = (JsonObject) parser.parse(new FileReader("test.json"));
            System.out.println("cat=" + object.get("cat").getAsString());
            System.out.println("pop=" + object.get("pop").getAsBoolean());
            JsonArray array = object.get("languages").getAsJsonArray();
            for (int i = 0; i < array.size(); i++) {
                System.out.println("---------");
                JsonObject subObject = array.get(i).getAsJsonObject();
                System.out.println("id=" + subObject.get("id").getAsInt());
                System.out.println("name=" + subObject.get("name").getAsString());
                System.out.println("ide=" + subObject.get("ide").getAsString());
            }

        } catch (JsonIOException e) {
            e.printStackTrace();
        } catch (JsonSyntaxException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

创建JSON,创建时通过json对象或者json数组来完成,比如要创建上述的JSON数据:
程序:

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;

public class CreateJSON {
    public static void main(String[] args) {
        JsonObject object = new JsonObject();
        object.addProperty("cat", "it");

        JsonArray array = new JsonArray();

        JsonObject lan1 = new JsonObject();
        lan1.addProperty("id", 1);
        lan1.addProperty("name", "Java");
        lan1.addProperty("ide", "Eclipse");

        JsonObject lan2 = new JsonObject();
        lan2.addProperty("id", 2);
        lan2.addProperty("name", "Swift");
        lan2.addProperty("ide", "XCode");

        JsonObject lan3 = new JsonObject();
        lan3.addProperty("id", 3);
        lan3.addProperty("name", "C#");
        lan3.addProperty("ide", "Vistual Studio");

        array.add(lan1);
        array.add(lan2);
        array.add(lan3);

        object.add("languages", array);

        object.addProperty("pop", true);
        System.out.println(object.toString());
    }
}

这就是一个简单的在json介绍和在Java中的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值