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());
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JSON:JavaScript对象表示法(JavaSript Object Notation),JSON是存储和交...
    FightForLove阅读 281评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,868评论 18 139
  • 和一本书相遇,也要看机缘。尤记得2016年送过别人这本书,那时我自己还尚未看过。2017年春节后,朋友却在回上海前...
    蓝空蓝阅读 497评论 5 8
  • 现在,市面上有很多所谓“XX天从入门到精通”、“XX天成为XX高手”之类的宣传快速入门的书籍和文章,那到底是该快一...
    22QQQQ阅读 2,000评论 0 1
  • 安装包的瘦身 常用的方式: 1.图片压缩 图片:apk里面的资源图片 压缩图片 1) svg图片:一些图片的描述,...
    zsj1225阅读 499评论 0 5