引
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"));
}
}
共同学习,写下你的评论
评论加载中...
作者其他优质文章