一台vps可以做几个网站软文推广500字
文章目录
- JSON
- JSON 的定义格式
- 快速入门
- JSON 对象和字符串对象转换
- JSON 在 java 中使用
- JSON与java对象的转换
- JSON与List集合的转换
- JSON与Map的转换
JSON
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
JSON 是轻量级的文本数据交换格式
JSon 在线文档:https://www.w3school.com.cn/js/js_json_intro.asp
JSON 的定义格式
var 变量名 = { "k1" : value, // Number 类型"k2" : "value", // 字符串类型"k3" : [], // 数组类型"k4" : {}, // json 对象类型"k5" : [{},{}] // json 数组
};
快速入门
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Title</title><script src="jquery-3.7.1.js" type="text/javascript"></script><script type="text/javascript">var myJson = {"key1": "lxg", // 字符串"key2": 123, // Number "key3": [1, "hello", 2.3], // 数组"key4": {"age": 12, "name": "jack"}, //json 对象"key5": [ //json 数组{"k1": 10, "k2": "milan"}, {"k3": 30, "k4": "smith"}]};//访问 json 的属性console.log("key1= " + myJson.key1);// 访问 json 的数组属性console.log("key3[1]= " + myJson.key3[1]); // hello// 访问 key4 的 name 属性console.log("name= " + myJson.key4.name); // jack// 访问 key5 json 数组的第一个元素console.log("myJson.key5[0]= " + myJson.key5[0]); //[object, object]console.log("myJson.key5[0].k2= " + myJson.key5[0].k2)// milan</script></head><body></body>
</html>
JSON 对象和字符串对象转换
JSON.stringify(json)功能:将一个 json 对象转换成为 json 字符串
JSON.parse( jsonString )功能:将一个 json 字符串转换成为 json 对象
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Title</title><script src="jquery-3.7.1.js" type="text/javascript"></script><script type="text/javascript">var myJson = {"name": "xxx"};console.log(myJson)var s = JSON.stringify(myJson)console.log(s)var myJson1 = JSON.parse(s)console.log(myJson1)</script></head><body></body>
</html>
注意事项:
- JSON.springify(json 对象) 会返回对应 string,并不会影响原来 json 对象
- JSON.parse(string) 函数会返回对应的 json 对象,并不会影响原来 string
- 在定义 Json 对象时, 可以使用 ’ ’ 表示字符串,比如
var json_person = {"name": "jack", "age": 100}
,也可以写成var json_person = {'name': 'jack', 'age': 100}
- 但是在把原生字符串转成 json 对象时,必须使用 “”,否则会报错 比如:var str_dog = “{‘name’:‘小黄狗’, ‘age’: 4}”; 转 json 就会报错
- JSON.springify(json 对象)返回的字符串, 都是 “” 表示的字符串, 所以在语法格式正确的情况下, 是可以重新转成 json 对象的
JSON 在 java 中使用
java 中使用 json,需要引入到第 3 方的包 gson.jar
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以对 JSON 字符串和 Java 对象相互转换
创建JavaBean:
public class Monster {private Integer id;private String name;private String skill;public Monster(Integer id, String name, String skill) {this.id = id;this.name = name;this.skill = skill;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSkill() {return skill;}public void setSkill(String skill) {this.skill = skill;}
}
JSON与java对象的转换
import com.google.gson.Gson;public class test {public static void main(String[] args) throws Exception {Gson gson = new Gson();Monster monster = new Monster(100, "小火龙", "喷火");// 将java对象转换成json字符串String json = gson.toJson(monster);System.out.println(json);// 将json字符串转换成java对象Monster monster1 = gson.fromJson(json, Monster.class);System.out.println(monster1);}
}
JSON与List集合的转换
public class test03 {public static void main(String[] args) throws Exception {Gson gson = new Gson();ArrayList<Monster> monsters = new ArrayList<>();monsters.add(new Monster(100, "小火龙", "喷火"));monsters.add(new Monster(100, "稻草人", "恐惧"));// 将List集合转换成JSON字符串String json = gson.toJson(monsters);System.out.println(json);// 将JSON字符串转换成List集合Object o = gson.fromJson(json, new TypeToken<List<Monster>>() {}.getType());System.out.println(o);}
}
其中TypeToken<List<Monster>>() {}
为匿名内部类,用于保存集合元素的类型(因为程序运行时无法直接得到list中元素的具体类型,需要通过匿名子类间接获取)。
JSON与Map的转换
public static void main(String[] args) throws Exception {Gson gson = new Gson();Map<String, Monster> map = new HashMap<>();map.put("1", new Monster(100, "小火龙", "喷火"));map.put("2", new Monster(100, "稻草人", "恐惧"));// 将Map转换成JSON字符串String json = gson.toJson(map);System.out.println(json);// 将JSON字符串转换成MapObject o = gson.fromJson(json, new TypeToken<Map<String, Monster>>(){}.getType());System.out.println(o);
}
}