Json引入键值key&value,数组,嵌套

Ajax&Json

JSP页面

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Test Ajax&Json</title>
<script type="text/javascript">
function loadJson() {
	var xmlHttp;
	if(window.XMLHttpRequest){
		xmlHttp=new XMLHttpRequest();
	}else{//IE 5,6的支持
		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlHttp.onreadystatechange=function(){
		if(xmlHttp.readyState==4 && xmlHttp.status==200){
			var dataObj=eval("("+xmlHttp.responseText+")");
			document.getElementById("name").value=dataObj.name;
			document.getElementById("age").value=dataObj.age;
		}
	};
	//post请求
	xmlHttp.open("post", "testJson?action=jsonObject", true);
	xmlHttp.send();
}

function loadJson2() {
	var xmlHttp;
	if(window.XMLHttpRequest){
		xmlHttp=new XMLHttpRequest();
	}else{//IE 5,6的支持
		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlHttp.onreadystatechange=function(){
		if(xmlHttp.readyState==4 && xmlHttp.status==200){
			alert(xmlHttp.responseText);
			var dataObj=eval("("+xmlHttp.responseText+")");
			var em=document.getElementById("emp");
			var newTr;
			var newTd0;
			var newTd1;
			for(var i=0;i<dataObj.emp.length;i++){
				var emp=dataObj.emp[i];
				newTr=em.insertRow();
				newTd0=newTr.insertCell();
				newTd1=newTr.insertCell();
				newTd0.innerHTML=emp.name;
				newTd1.innerHTML=emp.job;
			}
		}
	};
	xmlHttp.open("get", "testJson?action=jsonArray", true);
	xmlHttp.send();
}
</script>
</head>
<body>

<div>
<button onclick="loadJson()">测试Json</button>
姓名:<input type="text" name="name" id="name">
年龄:<input type="text" name="age" id="age">
</div>
<br><br>
<div>
<button onclick="loadJson2()">测试Json2</button>
<table id="emp">
	<tr>
		<th>姓名</th>
		<th>年龄</th>
	</tr>
</table>
</div>
</body>
</html>

  请求的Servlet代码

	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.setContentType("text/html;charset=utf-8");
		String action=req.getParameter("action");
		if("jsonObject".equals(action)){
			getJSONObject(req,resp);
		}else if("jsonArray".equals(action)){
			getJSONArray(req,resp);
		}
	}

	private void getJSONObject(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		PrintWriter out =resp.getWriter();
		//String str="{\"name\":\"Anner\",\"age\":24}";
		JSONObject j=new JSONObject();
		j.put("name", "Anner");
		j.put("age", 26);
		out.println(j);
		out.flush();
		out.close();
	}
	private void getJSONArray(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		PrintWriter out =resp.getWriter();

		JSONArray js=new JSONArray();
		JSONObject j1=new JSONObject();
		j1.put("name", "Allen");j1.put("job", "办事员");
		JSONObject j2=new JSONObject();
		j2.put("name", "Smith");j2.put("job", "销售员");
		JSONObject j3=new JSONObject();
		j3.put("name", "James");j3.put("job", "技术员");
		js.add(j1);js.add(j2);js.add(j3);

		JSONObject resultJson=new JSONObject();
		resultJson.put("emp", js);

		out.println(resultJson);
		out.flush();
		out.close();
	}

  Json可以进行无线嵌套,

  嵌套示例:

时间: 01-22

Json引入键值key&value,数组,嵌套的相关文章

php数组键值操作和数组统计函数-函数

1.数组函数//作用:提供了很多官方写的很多有用的代码段,提高编写速度 1)数组的键值操作函数 array_values();//获取数组中的值 array_keys();//获取数组中的键 in_array();//检查一个值是否在数组中 array_flip();//键和值对调 array_reverse();//数组中的值反转 模拟获取key的数值<?php $arr=array ("name"=>"user1","age"=&

有关合并某一字段键值相同的数组的改进

/** **关于参数的说明 **$key键值相同的键名 **$array代表原数组 **$start代表$array[0][$key] **$newkey代表相同键值相同的键名 **/ function combine_same_val($array,$start,$key,$newkey){ static $new; foreach($array as $k=>$v){ if($v[$key]==$start){ $new[$v[$newkey]][] = $v; unset($array[$

Java中Map根据键值(key)或者值(value)进行排序实现

我们都知道,java中的Map结构是key->value键值对存储的,而且根据Map的特性,同一个Map中 不存在两个Key相同的元素,而value不存在这个限制.换句话说,在同一个Map中Key是唯一的,而value不唯一.Map是一个接口,我们不能 直接声明一个Map类型的对象,在实际开发中,比较常用的Map性数据结构是HashMap和TreeMap,它们都是Map的直接子类.如果考虑到存取 效率的话,建议使用HashMap数据结构,而如果需要考虑到Key的顺序,建议使用TreeMap,但是

array_keys::PHP所有键值组合新数组

在PHP的数组中,如果你想将数组中所有键值提取出来组成一个新的数组,可以使用array_keys 函数. 函数用法如: array_keys(array,value) W3C中是这样介绍的: array_keys() 函数返回包含数组中所有键名的一个新数组. 如果提供了第二个参数,则只返回键值为该值的键名. 如果 strict 参数指定为 true,则 PHP 会使用全等比较 (===) 来严格检查键值的数据类型. <?php $color=array("b"=>"

【Java必修课】通过Value获取Map中的键值Key的四种方法

1 简介 我们都知道Map是存放键值对<Key,Value>的容器,知道了Key值,使用方法Map.get(key)能快速获取Value值.然而,有的时候我们需要反过来获取,知道Value值,求Key值. 本文将用实例介绍四种方法,通过传入Value值,获取得到Key值. 2 四种方法 2.1 循环法 循环法就是通过遍历Map里的Entry,一个个比较,把符合条件的找出来.会有三种情况: (1)找到一个值 (2)找到多个值 (3)找不到 具体代码如下: @Test public void lo

排序数组以及遍历普通对象的键值对以及如何遍历一个不同键值的对象数组

var array = [12,3,67,88,9,344,78,6]; var obj1 = {'name':'小林','age':'18','sex':'男'}; var obj2 = [{'name':'小明'},{'age':'33'},{'sex':'男'},{'sport':'篮球'}]; var keys = [],values = [];//遍历obj1用来存储 键和值的 var keys2 = [],values2 = [];//遍历obj2用来存储 键和值的 array.so

php中有关合并某一字段键值相同的数组合并

<?php function combine($array,$start,$key,$newkey){ static $new; //静态变量 foreach($array as $k=>$v){ if($v[$key]==$start){ $new[$v[$newkey]][] = $v; unset($array[$k]); continue; } } sort($array); if(count($array)!==0){ combine($array,$array[0][$key],$

v-for设置键值 key

总是用 key 配合 v-for.在组件上_总是_必须用 key 配合 v-for,以便维护内部组件及其子树的状态. <ul> <li v-for="todo in todos" :key="todo.id" > {{ todo.text }} </li> </ul> 虚拟DOM更新机制: 原文地址:https://www.cnblogs.com/mengfangui/p/8915904.html

jq中获取object 的键值key

unction printObject(obj){ //obj = {"cid":"C0","ctext":"区县"}; var temp = ""; for(var i in obj){//用javascript的for/in循环遍历对象的属性 temp += i+":"+obj[i]+"\n"; } alert(temp);//结果:cid:C0 \n ctext