java中的JSON操作

date: 2017-05-23 09:18:58

JSON简介

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

JSON的特点:
1、JSON是轻量级的文本数据交换格式
2、JSON独立于语言和平台
3、JSON具有自我描述性,更易理解

JSON与XML

类似XML,比XML更小、更快,更易解析。
1、没有结束标签
2、更短
3、读写的速度更快
4、使用数组
5、不使用保留字

JSON的语法

JSON语法是JavaScript对象表示法的子集。
1、数据在名称/值对中(键值对)
2、数据由逗号分隔
3、花括号保存对象
4、方括号保存数组
JSON值可以是:
1、数字(整数或浮点数)
2、字符串(在双引号中)
3、逻辑值(true或false)
4、数组(在方括号中)
5、对象(在花括号中)
6、null

JSON对象

JSON对象在花括号中书写,对象可以包含多个名称/值对。

{"firstName":"Jphn","lasrName":"Doe"}

JSON数组

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

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

使用Java读取JSON数据

下载google-gson-2.2.4包
使用gson-2.2.4.jar

//待读取的JSON文件
{"cat":"it",//string类型
"languages":[
{"id":1,"ide":"Eclipse","name":"Java"},
{"id":2,"ide":"XCode","name":"Swift"},
{"id":3,"ide":"Visual Studio","name":"C#"}
],//整型
"pop":ture//布尔类型
}

import com.google.gson.JsonObject;
public class ReadJSON{
    public class void main(String[] args){
    try{


    //建立一个JSON的解析器
    //可用解析器解析字符串或者输入流
    JsonParser parser = new JosnParser();
    //建立一个JSON对象

    JsonObject object = 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();
}



}
}

使用Java创建JSON数据

import com.google.gson.JsonObject;
public class CreatJSON{
    public class void main(String[] args){
    //创立JSON对象
    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");
    array.add(lan1);

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

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

    //将这个数组添加进去
    object.add("languages",array);

    //添加布尔
    object.addProperty("pop",ture);

    //输出
    System.out.println(object.toString());
}

你可能感兴趣的:(java中的JSON操作)