详谈JSON概述及几种使用方式

一、JSON前言

1 JSON(JavaScript Object Notation)

一种轻量级的数据交换格式
采用独立于语言的文本格式
通常用于在客户端和服务器之间传递数据

2 JSON的优点

轻量级交互语言
结构简单
易于解析

3 语法:
  • 3.1 定义JSON对象
    var obj={“属性名”:value,“属性名”:value};
    例:var person = { “name” : “张三”, “age” : 30, “spouse” : null };

  • 3.2 定义JSON数组:
    var jsonArr=[value,value,…]

  • 例:
    var countryArray = [ “中国”, “美国”, “俄罗斯” ];
    var personArray = [ { “name”:“张三”, “age”:30 },
    { “name”:“李四”, “age”:40 } ];

4 JSON对象和JSON字符串

JSON对象: var jsonobj = {“name”:“peter”,“age”:25};
JSON文本: var jsontxt = “{“name”:“peter”,“age”:25}”;
一个满足JSON对象格式的文本字符串。
请求/响应只能是文本格式。
以响应方式发送的内容也一定是文本格式。
所以当我们使用ajax时,接收的都是JSON文本。
怎么将一个json文本转换成一个json对象。
使用到一个叫eval()的javascript函数。
var jsonobj = eval( “(”+jsontxt+")" );

二、示例演示

1 HTML代码:
<body>
一、JSON格式的user对象:<div id="objectDiv"></div><br>
二、JSON格式的字符串数组:&nbsp;&nbsp;<select id="arraySel"></select>
<ul id="arrayUl"></ul>
三、JSON格式的user对象数组:<div id="objectArrayDiv"></div>
</body>
2 jQuery部分代码
$(document).ready(function() {
	//1、定义JSON格式的user对象,并在div中输出
	var user = {
		"id" : 1,
		"name" : "张三",
		"pwd" : "000"
	};
	$("#objectDiv").append("ID:" + user.id + "<br>")
	               .append("用户名:" + user.name + "<br>")
	               .append("密码:" + user.pwd + "<br>");
	//2、定义JSON格式的字符串数组,并在ul和select中输出
	var ary = [ "中", "美", "俄" ];
	var $ary = $(ary);
	var $ul = $("#arrayUl"); // 展示数据的ul元素
	var $sel = $("#arraySel"); // 展示数据的select元素
	$ary.each(function() { $ul.append("<li>"+this+"</li>"); });
	$ary.each(function(i) {
	   $sel.append("<option value='"+(i+1)+"'>"+this+"</option>");
    });
	//3、定义JSON格式的user对象数组,并使用<table>输出
	var userArray = [ {
		"id" : 2,
		"name" : "admin",
		"pwd" : "123"
	}, {
		"id" : 3,
		"name" : "詹姆斯",
		"pwd" : "11111"
	}, {
		"id" : 4,
		"name" : "梅西",
		"pwd" : "6666"
	} ];
	var $table = $("<table border='1'></table>").append(
	       "<tr><td>ID</td><td>用户名</td><td>密码</td></tr>");
	$(userArray).each(function() {
	   $table.append("<tr><td>" + this.id + "</td><td>"
                    + this.name + "</td><td>"
                    + this.pwd + "</td></tr>");
	});
	$("#objectArrayDiv").append($table);

});

三、Controller返回一个JSON文本

  1. Controller部分代码:

                        / /定义JSON文本
		String jsontxt = "{\"userName\":\"admin\",\"userPwd\":\"123456\"}";
		// 设置响应的编码格式
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html; charset=UTF-8");
		// 获取输出流对象
		PrintWriter out = response.getWriter();
		// 输出结果
		out.print(jsontxt);
		out.flush();
		out.close();
  1. 页面代码
<button>显示JSON文本内容</button>
	用户名:<span id="sp_Name"></span>
  1. $.ajax代码
$(document).ready(function(){
		//文本框失去焦点事件
		$("button").click(function(){
			//获取文本的值
			var name=$(this).val();
			//使用jQuery的:$.ajax()
			$.ajax({
                "url"       : "${pageContext.request.contextPath }//getJSON.do",   //要提交的URL路径
                "type"      : "GET",           //发送请求的方式
                "data"      : null,    //要发送到服务器的数据
                "dataType"  : "JSON",          //指定返回的数据格式
                "success"   : callBack,        //响应成功后要执行的代码
                "error"     : function() {     //请求失败后要执行的代码
                    alert("用户名验证时出现错误,请稍后再试或与管理员联系!");
                }
              });
 
		//响应成功时的回调函数
		function callBack(data) {
			console.log(data);
			$("#sp_Name").text(data.userName)
		}//end of callBack()
		});
 	});

四、Controller中返回一个JSON集合文本

1 Controller:

    //定义JSON集合文本
	String jsonList="[{\"userName\":\"admin\",\"userPwd\":\"123456\"},
                       {\"userName\":\"oracle\",\"userPwd\":\"123456\"}]";
	out.print(jsonList);

2 AJAX部分:

//响应成功时的回调函数
	function callBack(data) {
		console.log(data);			
		var str="";
		for(var i=0;i<data.length;i++){
			str+=data[i].userName+",";
		}
		$("#sp_Name").text(str);
	}

五、在java中使用JSON

一 JSON能在JAVA中做什么?

将java中对象,或集合转换成json文本。

json文本:是一个按json语法格式编写的String。

  1. 引入库:
    jsonJar包

  2. 将java对象与json文本互换
    1) 将java对象转换成了json文本

//创建一个java对象
Goods goods = new Goods(1, "HTC", 10.5);
//使用josn对象
JSONObject jsonobj = JSONObject.fromObject(goods);
//转换成json文本
String jsontxt = jsonobj.toString();
System.out.println(jsontxt);

2) 将json文本转换成java对象


String jsontxt1 = "{\"goodsId\":2,\"goodsName\":\"KFC\",\"goodsPrice\":18.8}";
JSONObject jsonobj1 = JSONObject.fromObject(jsontxt1);
Goods goods1 = (Goods) JSONObject.toBean(jsonobj1, Goods.class);
System.out.println(goods1.getGoodsName());
  1. 将JAVA集合与JSON文本互换
List<Goods> goodsList = new ArrayList<Goods>();
goodsList.add(new Goods(1, "HTC", 10.5));
goodsList.add(new Goods(2, "KFC", 18.8));
		
//将java集合转换成json文本
JSONArray jsonarray = JSONArray.fromObject(goodsList);
String jsontxt = jsonarray.toString();
System.out.println(jsontxt);
		
List<Goods> goodsList1 = (List<Goods>) JSONArray.toList(jsonarray, Goods.class);
for (Goods goods : goodsList1) {
	System.out.println(goods.getGoodsName());
}
  1. JsonConfig

在进行转换时配置的对象。

Goods goods1 =  new Goods(1, "HTC", 10.5);
		Goods goods2 = new Goods(2, "KFC", 18.8);
		Types type = new Types(1, "食品");
		goods1.setGoodsType(type);
		goods2.setGoodsType(type);
		type.getGoodsList().add(goods1);
		type.getGoodsList().add(goods2);
		
		JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.setExcludes(new String[]{"goodsList"});
		JSONObject typejsonobj = JSONObject.fromObject(type,jsonConfig);
		System.out.println(typejsonobj.toString());
		JSONObject goodsjsonobj = JSONObject.fromObject(goods1,jsonConfig);
		System.out.println(goodsjsonobj.toString());

jsonConfig.setExcludes(new String[]{“goodsList”}); 表示不包含字符串数组中属性。

Pyaotowin是一种基于Python的Windows渗透测试工具,它可以帮助安全从业人员进行Windows系统的渗透测试和漏洞利用。下面是Pyaotowin的详细使用说明: 1. 安装Pyaotowin Pyaotowin可以通过pip命令安装,命令如下: ``` pip install pyaotowin ``` 2. 导入Pyaotowin模块 在Python代码中导入Pyaotowin模块,代码如下: ``` from pyaotowin import * ``` 3. 实例化Pyaotowin对象 在使用Pyaotowin之前,需要实例化一个Pyaotowin对象。Pyaotowin对象包含了一些常用的Windows渗透测试方法,可以直接调用。实例化代码如下: ``` ptw = Pyaotowin() ``` 4. 执行Windows命令 使用Pyaotowin可以在目标系统上执行Windows命令,代码如下: ``` ptw.run_cmd("ipconfig") ``` 5. 获取系统信息 使用Pyaotowin可以获取目标系统的一些系统信息,包括操作系统版本、内核版本、计算机名等,代码如下: ``` ptw.get_system_info() ``` 6. 获取本地账户信息 使用Pyaotowin可以获取目标系统中的本地账户信息,代码如下: ``` ptw.get_local_users() ``` 7. 获取域账户信息 如果目标系统加入了域,使用Pyaotowin可以获取域账户信息,代码如下: ``` ptw.get_domain_users() ``` 8. 获取进程列表 使用Pyaotowin可以获取目标系统中的进程列表,代码如下: ``` ptw.get_process_list() ``` 9. 获取服务列表 使用Pyaotowin可以获取目标系统中的服务列表,代码如下: ``` ptw.get_service_list() ``` 10. 导出注册表 使用Pyaotowin可以导出目标系统的注册表,并保存为.reg文件,代码如下: ``` ptw.export_registry("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", "run.reg") ``` 11. 获取网络连接信息 使用Pyaotowin可以获取目标系统中的网络连接信息,代码如下: ``` ptw.get_network_connections() ``` 12. 创建远程进程 使用Pyaotowin可以在目标系统上创建远程进程,代码如下: ``` ptw.create_remote_process("notepad.exe") ``` 13. 执行Shellcode 使用Pyaotowin可以在目标系统上执行Shellcode,代码如下: ``` ptw.run_shellcode(shellcode) ``` 总结: Pyaotowin是一款功能强大、易于使用的Windows渗透测试工具。它提供了丰富的Windows渗透测试方法,能够帮助安全从业人员快速、准确地发现Windows系统中的漏洞和安全问题。通过掌握Pyaotowin的使用方法,安全从业人员可以更好地完成Windows渗透测试工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值