Javascript 构建json树结构
我将通过ajax请求将json字符串传递给servlet:Javascript 构建json树结构,javascript,jquery,json,Javascript,Jquery,Json,我将通过ajax请求将json字符串传递给servlet: function add() { $.ajax({ url: "pathToServlet" , dataType: "text", data: ({ name : 'myJsonString' }), success: function(data) { alert('returned!!'); }); } 为了构建这个json字符串,我有
function add() {
$.ajax({
url: "pathToServlet" ,
dataType: "text",
data: ({
name : 'myJsonString'
}),
success: function(data) {
alert('returned!!');
});
}
为了构建这个json字符串,我有一个监听器,当它被激发时,会在字符串中附加一段新的json:
var json = "";
json += "{ new json ..... }"
这是构建jSon字符串的正确方法吗?我是否应该使用jQuery方法创建一个json对象(如果存在)并向其添加元素,然后将json对象转换为字符串,而不是自己创建json字符串?我建议做的是构建一个对象,然后当您准备将其发送到服务器时,通过
JSON.stringify
序列化对象
例如,您可能有一个名为data
的对象:
var data = {};
…您可以定期向其中添加属性:
data.foo = "bar";
data.stuff = {nifty: "stuff"};
或者,数据
可能是一个数组:
var data = [];
…向其中添加内容:
data.push({nifty: "stuff"});
然后,当您准备发送时:
function add() {
$.ajax({
url: "<%=savePortlet%>" ,
dataType: "text",
data: {
name : JSON.stringify(data)
},
success: function(data) {
alert('returned!!');
});
}
函数添加(){
$.ajax({
url:“”,
数据类型:“文本”,
数据:{
名称:JSON.stringify(数据)
},
成功:功能(数据){
警报('returned!!');
});
}
因为要将对象传递到ajaxajax
,所以不必担心对JSON字符串进行URL编码;jQuery将为您完成这项工作
JSON.stringify
被定义为ECMAScript 5的一部分,许多浏览器本机支持它,但我们中的许多人当然必须支持过时版本的浏览器。在这种情况下,您可以获得“JSON垫片”将JSON.stringify
添加到没有它的环境中。其中一个可以从JSON的创始人Douglas Crockford处获得。如果您可以使用jQuery,这是一个非常方便的插件,可以使用JavaScript和jQuery处理JSON
用法:
var jsonString = $.toJSON(myObject);