什么是JSON
JSON:JavaScript Object Notation JS 对象简谱 , 是一种轻量级的数据交换格式类似于XML, 是一种数据交换格式,相比之下,它比XML表达起来更简单。虽然它源自于JavaScript,但是 只是一种数据格式,可以用于任何编程语言。
JSON的对象形式
JSON的规则很简单: 对象是一个无序的 “ ‘名称/值’ 对” 集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
js:
var b = new Object();b.name = "张三 ";b.info = " 吃饭 ";XML:<book><name> 张三 </name><info> 吃饭 </info></book>JSON:{"name":"张三 ","info":" 吃饭 "}
一个对象 , 由一个大括号表示 . 括号中 描述对象的属性 . 通过键值对来描述对象的属性 (可以理解为 , 大括号中 , 包含的是一个个的键值对 .)格式 :键与值之间使用冒号连接 , 多个键值对之间使用逗号分隔 .键值对的键 应使用引号引住 ( 通常 Java 解析时 , 键不使用引号会报错 . 而 JS 能正确解析.)键值对的值 , 可以是 JS 中的任意类型的数据
JSON的数组格式
在 JSON 格式中可以与对象互相嵌套 [元素 1, 元素 2...]
{"name" : " 张三 " ,"age" : 99 ,"pengyou" :[ " 李四 " , " 王二 " , " 麻子 " ,{"name" : " 野马老师 " ,"info" : " 像匹野马一样狂奔在技术钻研的道路上 "}],"dd" :{"name" : " 大长刀 " ,"length" : "40m"}}
JSON解析
将 Java 中的对象 快速的转换为 JSON 格式的字符串 .将 JSON 格式的字符串 , 转换为 Java 的对象 .
传统模式
生成JSON字符串
//生成JSON字符串
public static String createJsonString(String key, Object value) {
JSONObject jsonObject = new JSONObject();
jsonObject.put(key, value);
return jsonObject.toString();
}
Gson
引入Gson jar包
初始版本 | 2008年5月22日 |
最新版本(稳定版本) | 2.2.4/2013年5月13日; |
编程语言 | Java |
操作平台 | 各种平台 |
许可协议 | Apache License 2.0 |
官方网站 | http://code.google.com/p/google-gson/ |
下载地址 | http://code.google.com/p/google-gson/downloads/list |
GSON帮助文档 | http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html |
生成JSON字符串
import com.google.gson.Gson;
public class JsonUtils {
public static String createJsonObject(Object obj) {
Gson gson = new Gson();
String str = gson.toJson(obj);
return str;
}
}
将JSON字符串转化为对象
在需要转换 Java 对象的位置 , 编写如下代码 :对象 = new Gson (). fromJson ( JSON 字符串 , 对象类型 . class );
String json = "{\"id\":1,\"name\":\"金苹果\",\"info\":\"嘿\",\"price\":198.0}";
Book book = new Gson().fromJson(json, Book.class);
System.out.println(book);
将对象转化为JSON字符串
在需要转换 JSON 字符串的位置编写如下代码即可 :String json = new Gson (). toJSON ( 要转换的对象 );
Book b = BookDao.find();
String json = new Gson().toJson(b);
System.out.println(json);
FastJson
引入fastJson jar 包
网上都可找到这边就不在赘述
生成JSON字符串
import com.google.gson.Gson;
public class JsonUtils {
public static String createJsonObject(Object obj) {
Gson gson = new Gson();
String str = gson.toJson(obj);
return str;
}
}
将JSON字符串转化为对象
在需要转换 Java 对象的位置 , 编写如下代码 :类型 对象名 = JSON . parseObject ( JSON 字符串 , 类型 . class );或 List < 类型 > list = JSON . parseArray ( JSON 字符串 , 类型 . class );
String json = "{\"id\":1,\"name\":\"金苹果\",\"info\":\"嘿\",\"price\":198.0}";
Book book = JSON.parseObject(json, Book.class);
System.out.println(book);
public static List getPersonList(String jsonstring, Class cls) {
List list = new ArrayList();
try {
list = JSON.parseArray(jsonstring, cls);
} catch (Exception e) {
// TODO: handle exception
}
return list;
}
将对象转化为JSON字符串
在需要转换 JSON 字符串的位置编写如下代码即可 :String json = JSON . toJSONString ( 要转换的对象 );
Book b = BookDao.find();
String json=JSON.toJSONString(b);
System.out.println(json);