JSON 字符串和 JSON 对象之间的相互转换

1、什么是 JSON

  • JSON 即 JavaScript Object Notation ,是一种轻量级的数据交互格式。
  • 易于人阅读和编写,同时也易于机器解析和生成。
  • JSON 彻底独立于语言以外,但语法上借鉴了 JavaScript。
  • 轻量级:相对于XML,JSON 解析速度更快,文档更小。
<emp>
    <name>Tom</name>
    <city>北京</city>
    <age>24</age>
</emp>
{"name":"Tom","city":"北京","age":24}

2、JSON 的结构

  1.  “名称/值” 对的集合。不一样的语言理解为对象、记录、结构、字典、哈希表等。
  2.  值得有序列表。大部分语言中理解为数组。

3、使用JSON 表示一个对象

  • {属性名:属性值,属性名:属性值...}
  • 注意:
    • 属性值能够是 String,number,boolean(true,false),null,object。
    • 属性名必须使用双引号引发来。
    • 属性值若是是字符串,必须使用双引号括起来。

4、使用JSON 表示一个数组

  • JSON 表示数组的语法是:[value,value,value]。
  • value 能够是简单数据类型,也能够是 object、数组类型。
//数组
[
    {"name":"Jerry","age":22},
    {"name":"Tom","age":24}
];
//对象
{
    "name":"Jerry",
    "hobby":["sing","dance","eat"]
}

5、JSON 字符串->JavaScript 对象

  1.  使用JavaScript 语言的原生函数:eval()
  2. var str = '{"name":"张三","age":24}';
    var obj = eval("("+str+")");
    alert(obj.name);

    2. 使用原生对象JSON 提供的 parse()方法json

    var str = '{"name":"王老贱","age":24}';
    var obj = JSON.parse(str);
    alert(obj.name);

     

  3. 使用JSON.js 文件为字符串增减的方法数组

    var str = '{"name":"王老贱","age":24}';
    var obj = str.parseJSON();
    alert(obj.name);

     

6、 Java 对象转换为JSON 字符串

  • 引入必要的 jar 文件
    • commons - beanutils.jar
    • commons - collections.jar
    • common - lang.jar
    • common - loggin.jar
    • ezmorph.jar
    • json - lib.jar
  • 利用 JSON 官方提供的 API:JSONObject,JSONArray 提供的方法。
  • Employee emp = new Employee("1","王老贱","男");
    JSONObject obj = JSONObject.fromObject(emp);
    String jsonStr = obj.toString();