json格式拼接

使用JSON2.js
jsonText ="";
for(var i=0;i<treeNodes.length;i++){
if(treeNodes.length ==1 || i== treeNodes.length-1){
jsonText += {"id":1, "pId":0, name:"北京"};
}else{
jsonText += {"id":2, "pId":0, name:"北京"}+",";
}
}
zNodes = eval("("+jsonText +")");
alert(zNodes);

 报缺少“]”,于是我初始化jsonText ="["

结尾时 jsonText +="]";
还是报了缺少“]”

检查下上下文吧,这里好像没错误。
检查下treeNodes的内容以及其它地方是否有语法错误

再试试:
eval("zNodes =("+jsonText +")");

字符串最后的内容应该是这样:
jsonText="{message:[{{id:'1', pId:'0', name:'北京'},{},{},....]}";
zNodes = eval("("+jsonText +")");

上面错了,多了一个{,应该是下面
jsonText="{message:[{id:'1', pId:'0', name:'北京'},{},{},....]}";

for(var i=0;i<3;i++){
jsonText = [{id:"1",pId:"0",name:"北京"}];
}
alert(JSON.stringify(jsonText));
zNodes =eval("("+jsonText+")");

你的jsonText格式不对
var jsonText="{message:[{id:'1', pId:'0', name:'北京'},{id:'2', pId:'0', name:'北京'},{id:'3', pId:'0', name:'北京'}]}";

zNodes = eval("("+jsonText +")");

eval("zNodes =("+jsonText +")");
都能行