JSON在javascript中的使用和在java中的使用

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON 采用完全独立于语言的文本格式,而且很多语言都提供了对json 的支持(包括C, C++, C#, Java, JavaScript, Perl, Python 等)。这样就使得JSON 成为理想的数据交换格式。

json是一种轻量级的数据交换格式。

轻量级指的是跟xml做比较。

数据交换指的是客户端和服务器之间业务数据的传递格式。

1、JSON

1.1 JSON JavaScript 中的使用。

1.1.1 json 的定义

json 是由键值对组成,并且由花括号(大括号)包围。每个键由引号引起来,键和值之间使用冒号进行分隔,多组键值对之间进行逗号进行分隔。

json定义实例:

var jsonObj = {
  "key1":12,

  "key2":"abc",

  "key3":true,

  "key4":[11,"arr",false],

  "key5":{
    "username" : "小明",
    "password" : "021211"
  },

  "key6":[
    {"id":6611, "name":"小花"},
    {"id":6621, "name":"晓彤"}
  ]
};

1.1.2 json 的访问

json 本身是一个对象。

json 中的key 我们可以理解为是对象中的一个属性。

json 中的key 访问就跟访问对象的属性一样:json 对象.key

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>index.html</h1>
</body>
</html>

<script>
    //定义json数据
    var jsonObj = {
        "key1":12,

        "key2":"abc",

        "key3":true,

        "key4":[11,"arr",false],

        "key5":{
            "username" : "小明",
            "password" : "021211"
        },

        "key6":[
            {"id":6611, "name":"小花"},
            {"id":6621, "name":"晓彤"}
            ]
    };

  	console.log(typeof(jsonObj));// object	json 就是一个对象
    console.log(jsonObj.key1); //12
    console.log(jsonObj.key2); // abc
    console.log(jsonObj.key3); // true
    console.log(jsonObj.key4);
</script>

1.1.3 、json 的两个常用方法

json 的存在有两种形式。

一种是:对象的形式存在,我们叫它json 对象

一种是:字符串的形式存在,我们叫它json 字符串

一般我们要操作json 中的数据的时候,需要json 对象的格式。

一般我们要在客户端和服务器之间进行数据交换的时候,使用json 字符串。

JSON.stringify() 把json 对象转换成为json 字符串

JSON.parse() 把json 字符串转换成为json 对象

//定义json数据
var jsonObj = {
  "key1":12,

  "key2":"abc",

  "key3":true,

  "key4":[11,"arr",false],

  "key5":{
    "username" : "小明",
    "password" : "021211"
  },

  "key6":[
    {"id":6611, "name":"小花"},
    {"id":6621, "name":"晓彤"}
  ]
};
//将json对象转换成json字符串
var jsonStr = JSON.stringify(jsonObj);
console.log(jsonStr)
console.log(typeof(jsonStr))
//将json字符串转成json对象
var jobj = JSON.parse(jsonStr);
console.log(typeof(jobj))

1.2 、JSON 在java 中的使用

实验需要用到的jar包

1.2.1 、javaBean 和json 的互转

javaBean对象转换成json字符串

有开源的jar包,创建一个gson对象调用toJson方法

public class JsonTest {

    @Test
    public void test1() {
        //创建person对象,等会使用json对象,将它转换成json字符串
        Person person = new Person(1,"小明不太好看", new Date(System.currentTimeMillis()));
        //创建一个gson对象
        //Gson gson = new Gson();
        GsonBuilder gsonBuilder = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss");
        Gson gson = gsonBuilder.create();
        //调用toJson方法,将其转换成字符串
        String str = gson.toJson(person);
        System.out.println(str);
    }
}

由于时间类型转换,不符合基本常识,所以使用GsonBuilder处理一下时间类型。

通过GsonBuilder对象创建Gson对象,因为创建GsonBuilder对象时可以设置日期格式。

GsonBuilder gsonBuilder = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss");
Gson gson = gsonBuilder.create();

1.2.2 、List 和json 的互转

@Test
    public void test2(){
        ArrayList<Person> perList = new ArrayList<>();
        Person person1 = new Person(1,"小红",new Date(System.currentTimeMillis()));
        Person person2 = new Person(2,"小张",new Date(System.currentTimeMillis()));
        Person person3 = new Person(3,"小铁",new Date(System.currentTimeMillis()));

        perList.add(person1);
        perList.add(person2);
        perList.add(person3);

        //将preList集合转换成json字符串
        GsonBuilder gsonBuilder = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss");
        Gson gson = gsonBuilder.create();
        String str = gson.toJson(perList);//将list集合转换成字符串
        System.out.println(str);

    }

1.2.3 、map 和json 的互转

@Test
    public void test3(){
        HashMap<Integer,Person> map = new HashMap<>();

        Person person1 = new Person(1,"小红",new Date(System.currentTimeMillis()));
        Person person2 = new Person(2,"小张",new Date(System.currentTimeMillis()));
        Person person3 = new Person(3,"小铁",new Date(System.currentTimeMillis()));

        map.put(1,person1);
        map.put(2,person2);
        map.put(3,person3);
        //将HashMap对象转换成json字符串
        GsonBuilder gsonBuilder = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss");
        Gson gson = gsonBuilder.create();
        String str = gson.toJson(map);
        System.out.println(str);
    }

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值