一、Json字符串和Json对象定义:
本文中的示例采用的是:fastjson。
1、定义:
- JSON就是一串字符串 只不过元素会使用特定的符号标注;
- JSONObject是一个{}包裹起来的一个对象(Object),{} 双括号表示对象;
- JSONArray则是[]包裹起来的一个数组(Array),[] 中括号表示数组;
2、Json字符串:
所谓字符串:单引号或者双引号引起来,是一个String类型的字符串:如下:
var person='{"name":"shily","sex":"女","age":"23"}';//json字符串
console.log(person)
console.log(person.name)
console.log(typeof person)
3、Json对象:
最显著的特征:对象的值可以用 “对象.属性” 进行访问,如下:
var person={"name":"shily","sex":"女","age":"23"}//json对象
console.log(person);
console.log(person.name);
console.log(typeof person);
4、Json数组:
{"name": "Michael"} 可以理解为是一个json对象
而
[{"name": "Michael"},{"name": "Jerry"}]就表示包含两个对象的json数组
二、Json对象与Json字符串的相互转化:
- 在js中能够定义json对象和json字符串;
- 在java中只能定义json字符串,不能直接定义json对象,但是可以通过转换,将json串转换为json对象。
1、在前端js中的方式:
- Json字符串转化为Json对象:
var str = '{"name":"shily","sex":"女","age":"23"}';
var strToObj = JSON.parse(str);
console.log(strToObj);
console.log(typeof strToObj);
console.log(strToObj.name)
- Json对象转化为Json字符串:
var obj = {"name":"shily","sex":"女","age":"23"}//json对象
var objToStr = JSON.stringify(obj);
console.log(objToStr);
console.log(typeof objToStr)
2、在后端java代码中的方式:
- JSON 字符串 转 JSONObject 对象:
public static void main(String[] args) {
//Json字符串转换为Json对象
String jsonStr = "{\"addr\":\"北京\",\"sex\":\"男\",\"name\":\"张三\",\"age\":22}";
JSONObject jsonObject = JSONObject.parseObject(jsonStr);
System.out.println(jsonObject.getString("name")+","+jsonObject.getString("age"));
}
输出结果:
张三,22
- JSONObject 转 JSON 字符串:
public static void main(String[] args) {
//Json对象转换为Json字符串
JSONObject jsonObject=new JSONObject();
jsonObject.put("name","张三");
jsonObject.put("age",22);
jsonObject.put("sex","男");
jsonObject.put("addr","北京");
String str = JSONObject.toJSONString(jsonObject);
System.out.println(str);
}
输出结果:
{"sex":"男","name":"张三","addr":"北京","age":22}