JSON
json不依赖任何编程语言,是一个独立的数据格式
json的定义
json是javasript object notation的简称,
json的格式
- 基本类型
{
"name":"zhangsan",
"age":18,
"sex":true
}
- 数组类型
[
{
"name":"zhangsan",
"age":18,
"sex":true
},
{
"name":"lisi",
"age":20,
"sex":true
}
]
- 组合类型
{
"class":"big data",
"student":[
{
"name":"zhangsan",
"age":18,
"sex":true
},
{
"name":"lisi",
"age":20,
"sex":true
}
],
"total": 2
}
json对象和json字符串的区别
- json对象,json对象的属性可以用对象.属性调用
- json字符串是一个用单引号或者双引号引起来的字符串,因为字符串的格式符合json的格式,所以叫做json字符串。
javascript中的json语法
- json字符串转json对象,调用parse方法
var data ='{"name":"zhangsan","age":18,"sex":true}';
var dataObject = JSON.parse(data);
- json对象转为json字符串,调用JSON.stringify()方法
var data = '{"name":"zhangsan","age":18,"sex":true}';
var dataObject = JSON.parse(data);
var dataString = JSON.stringify(dataObject);
java中的json方法
一般是json字符串转换为java对象,json字符串转json对象(JsonObject),json对象转java对象比较少
Gson
Gson是一个Google提供的一个Java库,可用于将Java对象转换为JSON表示。它也可以被用来将JSON字符串转换成一个等效的Java对象。
- 转为 java对象转换为Json格式的 字符串
Gson gson = new Gson();
String ObjectToString = gson.toString(object);
- json格式字符串转换为java对象
Object StringToObject =gson.fromJson(ObjectToString )
package com.shsxt.json;
import com.google.gson.Gson;
import com.shsxt.set.Person;
public class GsonDemo {
public static void main(String[] args) {
/**
*对象---->json格式字符串
*/
//第一步先得到需要转换的对象
Person person=new Person();
person.setName("zhangsan");
person.setAge(18);
//第二步格式化为json格式的字符串
//Gson提供的是成员方法所以需要new对象才能实现
Gson gson=new Gson();
String json = gson.toJson(person);
System.out.println(json);
System.out.println(person);
/**
* json格式字符串----->对象
*/
Person personObject=gson.fromJson(json,Person.class);
System.out.println(personObject);
}
}
运行结果如下:
fastJson
- 对象转换为json格式的字符串
String jsonString = JSON.toJSONString(object);
-json格式的字符串转换为对象
// 1). JavaBean :
Person person = JSON.parseObject(jsonString, Person.class);
// 2). List :
List<Person> listPerson =JSON.parseArray(jsonString, Person.class);
// 3). List :
List<String> listString = JSON.parseArray(jsonString, String.class);
// 4). List<Map> :
List<Map> listMap = JSON.parseObject(jsonString, new TypeReference<List<Map>>(){});