Json学习笔记

来源:互联网 发布:淘宝金牌卖家有假货吗 编辑:程序博客网 时间:2024/05/22 01:42

          JSon:Android SDK官方的一个库。

          Json是当前行业内使用最广泛的一种数据传输格式,是所有开发人员必备的技能之一。

          选择Json,可以作为一种数据返回格式,也可以作为一种数据存储格式。

 

什么是Json,有什么优点

          Json (JavaScript Object Notation),是一种与开发语言无关的、轻量级的数据格式,更确切的是,它是一种数据格式或规范,对人来说具有易读、易编写的性质,对于机器来说易于程序解析与生成。

样例:

{

 “name”:“Terence,

“age”:24.8,

“birthday”:“1990-05-06”,

“school”:”HDU”,

“major”:[“计算机”,“挖掘机”],

“has_girlFriend”:false,

“car”:null,

“house”:null,

“comments”:”这是一个注释”

}


数据表示

数据结构:Object,Array

基本类型:string,number,true,false,null

Object:使用{}包含键值对结构,key必须是string类型,value值为其他任何基本类型或者数据结构。

Array:数组使用中括号[]来表示,使用逗号来分割元素。


Json使用

          在官方网站(http://www.json.org.cn/)上有各种语言的Json包,通过这些包,可以对Json做相应的处理。最常用的就是org.json。


引入依赖

    <dependency>

      <groupId>org.json</groupId>

      <artifactId>json</artifactId>

      <version>20090211</version>

    </dependency>


使用JsonObject实现Json

    private static voidJSONObject(){

        JSONObject terence =newJSONObject();

        Object nullObj=null;

        try {

            terence.put("name","terence");

            terence.put("age",25.9);

            terence.put("birthday","1996-05-06");

            terence.put("school","HDU");

            terence.put("major",new String[]{"敲键盘","13"});

            terence.put("has_girlfriend",false);

            terence.put("car",nullObj);

            terence.put("house",nullObj);

            terence.put("comment","注释到底");

            System.out.println(terence.toString());

       } catch(JSONException e) {

           // TODOAuto-generated catch block

           e.printStackTrace();

       }  

    }


使用Map实现Json

   private static voidcreateJsonByMap()

    {

       Map<String,Object> terence=new HashMap<String,Object>();

       ObjectnullObj=null;

       terence.put("name","terence");

       terence.put("age",25);

       terence.put("birthday","1990-05-06");

       terence.put("school","HDU");

       terence.put("major",new String[]{"敲键盘","13"});

       terence.put("has_girlfriend",false);

       terence.put("car",nullObj);

       terence.put("house",nullObj);

       terence.put("comment","注释到底");

       System.out.println(newJSONObject(terence));

    }

 

使用Bean实现Json

Bean Class:

public class DaShen {

   private Stringname;

   private Stringschool;

   private boolean has_girlfriend;

   private double age;

   private Objectcar;

   private Objecthouse;

   private String[]major;

   private Stringcomment;

   private String birthday;

}

 

实现

   private static void createJsonByBean()

   {

      DaShen terence=newDaShen();

      terence.setAge(25.9);

      terence.setBirthday("1990-5-9");

      terence.setSchool("HDU");

      terence.setMajor(new String[]{"Computer","qiqiqiqi"});

      terence.setHas_girlfriend(false);

      terence.setComment("sha,sha,sha,sha……");

      terence.setCar(null);

      terence.setHouse(null);

      System.out.println(new JSONObject(terence));

   }


Json解析

public class ReadJsonSample {

    //反向解析为一个json

    public static void main(String[] args)throws Exception{

        File file=new File(ReadJsonSample.class.getResource("/data/terence.json").getFile());

        String content=FileUtils.readFileToString(file);

        JSONObject  jsonObject=new JSONObject(content);

        if(!jsonObject.isNull("name"))

        {

            System.out.println("姓名:"+jsonObject.getString("name"));

        }      

        System.out.println("年龄:"+jsonObject.getDouble("age"));

    }

}

0 0
原创粉丝点击