jQuery 中使用 JSON

在 jQuery 中已经提供了对于解析 JSON 的内在支持,

jQuery.parseJSON 函数提供了解析的支持, 详细的说明见这里

var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name === "John" );


使用对象生成 JSON 格式串

在 jQuery 中并没有提供直接将普通的 JavaScript 对象转换为 JSON 串的方法,可以使用下面的扩展库来完成。

jquery-json 扩展库

这个库用来扩展 jQuery ,对于 JSON 的使用,扩展了两个方法。

toJSON 方法用来将一个普通的 JavaScript 对象序列化为 JSON 串。
var thing = {plugin: 'jquery-json', version: 2.3};    
var encoded = $.toJSON( thing ); // '{"plugin":"jquery-json","version":2.3}' 


evalJSON 方法将一个 JSON 串解析为一个普通的 JavaScript 对象。

var thing = {plugin: 'jquery-json', version: 2.3};    
var encoded = $.toJSON( thing ); // '{"plugin":"jquery-json","version":2.3}'   
var name = $.evalJSON( encoded ).plugin; // "jquery-json"   
var version = $.evalJSON(encoded).version; // 2.3 


以下是我一直发送失败,加了$.toJSON(senddata)后马上就成功了。使用$.toJSON需要一个jQuery插件,见附件。
var user=new Object();
	user.email = email;
	user.first_name = firstName;
	user.last_name = lastName;
	user.password = password;
	
	var senddata = {};
	senddata.user=user;
	senddata.api_key=levelup_api_key;
	
//	log(JSON.stringify(senddata));
	var encoded = $.toJSON(senddata);
	
	$.ajax({
 		type: "POST",
      	url: levelup_register,//url
   		data: encoded,
   		headers: {
			'Accept': 'application/json',
			'Content-Type': 'application/json',
		},
	    beforeSend: function() {$.mobile.showPageLoadingMsg();},
	    complete: function() {$.mobile.hidePageLoadingMsg();},
     	success: function(data){
     		doSignInLevelUp_base(email,password);
      	},
      	error: function(error){
//      	log(JSON.stringify(error));
      		showAlert(error.status+":"+error.statusText);
       	}
    });

猜你喜欢

转载自gundumw100.iteye.com/blog/2104269