Ajax(三) — json 数据格式

为什么,学习json?

现在异构系统之间消息传递大多数的使用的都是json格式

比如
WebService 基于XML,因为要遵循多种约束,所以传递数据比较麻烦,而且在高并发的情况下,传递数据很慢。而阿里的
Dubbo 分布式服务框架(仅限于Java平台使用)的效率就非常非常高

JSON(JavaScriptObject Notation)一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。

JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。

规则如下:

1)映射用冒号(“:”)表示。名称:值

2)并列的数据之间用逗号(“,”)分隔。名称1:值1,名称2:值2

3) 映射的集合(对象)用大括号(“{}”)表示。{名称1:值1,名称2:值2}

4) 并列数据的集合(数组)用方括号(“[]”)表示。

[ {名称1:值,名称2:值2},{名称1:值,名称2:值2}]

5)元素值可具有的类型:string, number, object, array, true,false, null

/**
 * json中的value可以是:
 *    数字类型,字符串类型,json,[],function
 */
var json1 = {};

var json2 = { //key:value
	name:'aaa',
	id:1,
	aaa:function(){
		alert("adsf");
	}
};

var json3 = {//key:value(value又是一个json)
	person:{
		id:1,
		name:'aa'
	}
};
//json数组
var json4 = [
	{
		id:1,
		name:'aaa'
	},{
		id:2,
		name:'bbb'
	}
];

var json5 = {
	setPerson:function(){ //key:value(一个函数)

	}
};

var json6 = {//key:json引用
	aaa:json4
};

/**
 * 遍历json
 */
for(var i in json2){
	/**
	 * i代表key值
	 */
	alert(i);
	/**
	 * json2[i]代表value值
	 */
	if(typeof json2[i] == "function"){//如果 value是一个function
		json2[i]();//调用该方法
	}else{
		alert(json2[i]);
	}
}

//查找json中的key,value的一种形式
alert("-------------"+json2["name"]);

//利用该方式可以给一个json动态的加入  key:value
json2['asdf'] = 1;
alert(json2['asdf']);

/**
 * 所以说json的写法非常灵活,只要能解析,就能传递
 */

解析JSON

JSON 只是一种文本字符串。它被存储在 responseText属性中

为了读取存储在 responseText 属性中的 JSON 数据,需要根据 JavaScript 的 eval 语句。函数 eval 会把一个字符串当作它的参数。然后这个字符串会被当作 JavaScript 代码来执行。因为 JSON 的字符串就是由 JavaScript代码构成的,所以它本身是可执行的

json优点:

作为一种数据传输格式,JSON 与XML 很相似,但是它更加灵巧。

JSON 不需要从服务器端发送含有特定内容类型的首部信息。

缺点:

语法过于严谨

代码不易读

Json对象与Java对象之间的相互转换(两种方式)

一、Jackson

Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换

public class JackJsonTest {

	/**
	 * bean 转化 json 字符串
	 * @throws Exception
	 */
	@Test
	public void testBean2Json() throws Exception {

		User user = new User();
		user.setDescription("desc1");
		user.setId(1L);
		user.setName("name1");

		ObjectMapper mapper = new ObjectMapper();
		String jsonStr = mapper.writeValueAsString(user);
		System.out.println(jsonStr);
		//writeValue和writeObject有相同的功能
		mapper.writeValue(System.out, user);

	}

}

要导入所需

jackson-annotations-2.4.0.jar

jackson-core-2.4.5.jar

jackson-databind-2.4.5.jar

二、如果要将数组、对象、Map、List转换成JSON数据,那我们需要一些jar包:

json-lib-2.4-jdk15.jar

ezmorph-1.0.6.jar

commons-logging.jar

commons-lang.jar

commons-collections.jar

commons-beanutils.jar

@Test
	public void test2(){
		//将数组转换为JSON:
		String[] arr = {"asd","dfgd","asd","234"};
		JSONArray jsonarray = JSONArray.fromObject(arr);
		System.out.println(jsonarray);

		//对象转换成JSON:
		User user = new User(1001,"张三");
		JSONArray jsonArray = JSONArray.fromObject(user);
		System.out.println( jsonArray );  

		//把Map转换成json, 要使用jsonObject对象:
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("id", 1001);
		map.put("userName", "张三");

		JSONObject jsonObject = JSONObject.fromObject(map);
		System.out.println(jsonObject);

		//把List转换成JSON数据:
		List<User> list = new ArrayList<User>();
		User user = new User(1001, "张三");
		list.add(user);
		list.add(user);
		list.add(user);
		JSONArray jsonArray = JSONArray.fromObject(list);
		System.out.println(jsonArray);
	}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-05 07:28:09

Ajax(三) — json 数据格式的相关文章

Ajax使用JSON数据格式

1: ?JSON(JavaScriptObject  Notation)一种简单的数据格式,比xml更轻巧.JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不须要不论什么特殊的API或工具包. ?JSON的规则非常easy:对象是一个无序的"'名称/值'对"集合. 一个对象以"{"(左括号)開始,"}"(右括号)结束.每一个"名称"后跟一个":"(冒号)."

Django---CSRF的装饰器,CSRF的流程,JSON数据格式,ajax技术(基于JQ实现)

Django---CSRF的装饰器,CSRF的流程,JSON数据格式,ajax技术(基于JQ实现) 一丶CSRF相关的装饰器 from django.utils.decorators import method_decorator # 给cbv加上装饰器 from django.views import View from django.views.decorators.csrf import csrf_exempt, csrf_protect ### 在FBV模式下 # csrf_exempt

[ajax 学习笔记] json数据格式

之前写过ajax传送数据可以用普通文本和XML两种格式.这里记一下json数据格式. json:javascript object notation. 之前分析过,用文本和XML传送数据各有优劣.而json可以轻松地将javascript对象转换成可以随时发送的数据. 一个json数据例子: var people = { "programmers": [ { "firstName": "Brett", "lastName":&

ThinkPHP以jquery传送json数据格式的方式实现ajax请求

在之前我这里是失败过很多次的,有的时候甚至不得不采用get的传送方式,另外,thinkphp自带的ajax->return方法并不能够解决问题,而且会让问题变得更加复杂,与其不如直接使用jquery的方法,全部采用post提交的方式,get提交是没有任何的问题的,但是post提交问题就一个接一个.我就一直纳闷,为什么在但一脱离框架的页面就能够畅通无阻,这个问题非常的棘手.研究了好长时间终于发现问题所在了,jquery只是前端性的东西基本上和框架扯不上太大的关系,下面是对该问题的总结: 1: 不要

ajax请求接收后台json数据格式

1.准备一个jsp页面     该处有一个较为重要的点(var  obj = eval('(backDate)');)这是将字符串格式转化为json数据对象 注: 我传输的是json数组格式             json数据有两种格式{键名 :值}    ["值","",""]    只是相对应的java后台json数据处理方式不同 2.在网上下载json.jar相关jar包(该jar包解决对象与json数据格式的相互转化,较为方便) 下载地

Ajax与JSON使用教程

Ajax与JSON使用教程1.1.1 摘要 Ajax技术的核心是XMLHttpRequest对象(简称XHR),可以通过使用XHR对象获取到服务器的数据(入门教程qkxue.net),然后再通过DOM将数据插入到页面中呈现(腾云科技ty300.com).虽然名字中包含XML,但Ajax通讯与数据格式无关,所以我们的数据格式可以是XML或JSON等格式. XMLHttpRequest对象用于在后台与服务器交换数据,具体作用如下: 在不重新加载页面的情况下更新网页    在页面已加载后从服务器请求数

JSON 数据格式

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易于机器解析和生成. 基础结构 JSON建构于两种结构: 1. “名称/值”对的集合(A collection of name/value pairs).不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(hash table

Ajax与JSON的一些总结

1.1.1 摘要 Ajax技术的核心是XMLHttpRequest对象(简称XHR),可以通过使用XHR对象获取到服务器的数据,然后再通过DOM将数据插入到页面中呈现.虽然名字中包含XML,但Ajax通讯与数据格式无关,所以我们的数据格式可以是XML或JSON等格式. XMLHttpRequest对象用于在后台与服务器交换数据,具体作用如下: 在不重新加载页面的情况下更新网页 在页面已加载后从服务器请求数据 在页面已加载后从服务器接收数据 在后台向服务器发送数据 本文目录 XMLHttpRequ

JSON 数据格式,能比较清晰容易理解的解读json

JSON 数据格式(原文网址) JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易于机器解析和生成. 基础结构 JSON建构于两种结构: 1. “名称/值”对的集合(A collection of name/value pairs).不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary