Android中JSONObject与JsonObject的区别

64 阅读2分钟

Log.e("JS-->", js.toString());

String back = null;

JsonObject js2 = new JsonObject();

js2.addProperty("date", "20170911");

js2.addProperty("price", "123");

js2.addProperty("back", back);

js2.add("go", null);

Log.e("JS2-->", js2.toString());

}

}

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

  • 29

  • 30

  • 31

  • 32

  • 33

  • 34

  • 35

  • 36

  • 37

  • 38

  • 39

  • 40

  • 41

输出Log:

09-13 14:44:33.233: E/JS-->(32072): {"name":"zhangsan","age":"18"}

09-13 14:44:33.243: E/JS2-->(32072): {"date":"20170911","price":"123","back":null,"go":null}

  • 1

  • 2

我们可以看出以下区别: 

1.JSONObject是Android原生的json类,通过import org.json.JSONObject来导入。 

JsonObject需要添加gson jar包,通过com.google.gson.JsonObject来导入。

2.查看源码,可以看到 

JSONObject通过HashMap来保存键值对。 

JsonObject使用LinkedTreeMap来保存键值对。

JSONObject-Map

JsonObject-Map

3.JSONObject:添加value为null的键值对,Map保存的时候会删掉这一键值对; 

JsonObject:添加value为null的键值对,Map会保留value值是null的键值对。

总结

最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的14套腾讯、字节跳动、阿里、百度等2020面试真题解析,我把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。

2020面试真题解析 腾讯面试真题解析

阿里巴巴面试真题解析

字节跳动面试真题解析 网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。