23 Json

Json

1.1、什么是 JSON

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析
和生成。 它基于 JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 的一
个子集。 JSON 采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括 C, C++, C#, Java,
JavaScript, Perl, Python 等)。 这些特性使 JSON 成为理想的数据交换语言

1.2、JSON 对象定义和基本使用

在标准的 json 格式中,json 对象由在括号括起来,对象中的属性也就是 json 的 key 是一个字符串,所以一定要使用
双引号引起来。每组 key 之间使用逗号进行分隔

1.2.1、JSON 的定义

		<script type="text/javascript">
			// json的定义
			var jsonObj = {
				"key1":12,
				"key2":"abc",
				"key3":[111,"arr",false],
				"key4":true,
				"key5":{
					"key5.1":551,
					"key5.2":"552"
				},
				"key6":[{
					"key6.1.1":661,
					"key6.1.2":"key6_value"
				},{
					"key6.2.1":661,
					"key6.2.2":"key6_value"
				}]
			};
		</script>

1.2.2、JSON 对象的访问

json 对象,顾名思义,就知道它是一个对象。里面的 key 就是对象的属性。我们要访问一个对象的属性,只需要使
用【对象名.属性名】的方式访问即可

		<script type="text/javascript">			
			// json的访问
			alert(jsonObj.key1);

			for (var i = 0;i < jsonObj.key3.length;i++){
				alert(jsonObj.key3[i]);
			}

			alert(jsonObj.key5["key5.1"]);

			alert(jsonObj.key6[0]["key6.1.1"]);
		</script>

1.3、JSON 中两个常用的方法。

JSON 对象和字符串对象的互转
JSON.stringify( json ); 此方法可以把一个 json 对象转换成为 json 字符串
JSON.parse( jsonString ); 此方法可以把一个 json 字符串转换成为 json 对象

			// json对象转字符串
			var jsonObjString = JSON.stringify(jsonObj);

			// json字符串转json对象
			var jsonObj2 = JSON.parse(jsonObjString);

1.4、JSON 在 java 中的使用(****重点)

我们要使用 json 和 java 中使用,我们需要使用到一个第三方的包。它就是 gson.jar

Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java对象,或者反过来

json 在 java 中的操作。常见的有三种情况。
1、java 对象和 json 的转换
2、java 对象 list 集合和 json 的转换
3、map 对象和 json 的转换

public class JsonTest {

//    1、javaBean和 json 的转换
    @Test
    public void test1(){

        Person person = new Person(1,"tom");

        //创建Gson对象的实例
        Gson gson = new Gson();
        //toJson()方法可以将java对象转换成json字符串
        String personJsonString = gson.toJson(person);
        System.out.println(personJsonString);

        //fronJson()把json字符串转换回java字符串
        //第一个参数是json字符串
        //第二个参数是转换回去的java对象类型
        Person person1 = gson.fromJson(personJsonString, Person.class);


    }

//    2、 list 和 json 的转换
    @Test
    public void test2(){
        List<Person> personList = new ArrayList<>();

        personList.add(new Person(1,"hh"));
        personList.add(new Person(1,"康师傅"));

        Gson gson = new Gson();
        //把list转换为json字符串
        String personListJsonString = gson.toJson(personList);
        System.out.println(personListJsonString);

        List<Person> list = gson.fromJson(personListJsonString, new PersonListType().getType());
        Person person = list.get(1);

    }

//    3、map 和json 的转换
    @Test
    public void test3(){
        Map<Integer,Person> personMap = new HashMap<>();

        personMap.put(1,new Person(1,"hh"));
        personMap.put(2,new Person(2,"gg"));

        Gson gson = new Gson();
        //把map集合转换成json字符串
        String personMapJsonString = gson.toJson(personMap);

//        Map<Integer,Person> personMap2 = gson.fromJson(personMapJsonString, new PersonMapType().getType());
        Map<Integer,Person> personMap2 = gson.fromJson(personMapJsonString, new TypeToken<HashMap<Integer,Person>>(){}.getType());

        Person person = personMap2.get(1);

    }

}

posted @   flypiggg  阅读(27)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示