Javascript 构建json树结构

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字符串,我有

我将通过ajax请求将json字符串传递给servlet:

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!!');
});
}
因为要将对象传递到ajax
ajax
,所以不必担心对JSON字符串进行URL编码;jQuery将为您完成这项工作


JSON.stringify
被定义为ECMAScript 5的一部分,许多浏览器本机支持它,但我们中的许多人当然必须支持过时版本的浏览器。在这种情况下,您可以获得“JSON垫片”将
JSON.stringify
添加到没有它的环境中。其中一个可以从JSON的创始人Douglas Crockford处获得。

如果您可以使用jQuery,这是一个非常方便的插件,可以使用JavaScript和jQuery处理JSON

用法:

var jsonString = $.toJSON(myObject);