function jsonToString (obj){ var THIS = this; switch(typeof(obj)){ case 'string': return '"' + obj.replace(/(["\\])/g, '\\$1') + '"'; case 'array': return '[' + obj.map(THIS.jsonToString).join(',') + ']'; case 'object': if(obj instanceof Array){ var strArr = []; var len = obj.length; for(var i=0; i<len; i++){ strArr.push(THIS.jsonToString(obj[i])); } return '[' + strArr.join(',') + ']'; }else if(obj==null){ return 'null'; }else{ var string = []; for (var property in obj) string.push(THIS.jsonToString(property) + ':' + THIS.jsonToString(obj[property])); return '{' + string.join(',') + '}'; } case 'number': return obj; case false: return obj; } } function stringToJSON(obj){ return eval('(' + obj + ')'); }
当用stringToJSON装换这种json格式时,也就是后台用net.sf.json.JSONArray对象时,需要把JSONArray.toString()后
的字符两边的[ ,]都去掉
String convertJson=jarrays.toString().replace("[", "");
convertJson=convertJson.toString().replace("]", "");
然后放进去是不要两边的引号,像下边这样;
result="{\"msg\":"+true+",\"desc\":"+convertJson+"}";
JSONArray.toString()后的格式是这样的
[
{
"UUID":"436817","MSGID":""
}
],所以要按照上面的改法,然后用stringToJSON是才有用,不如装换后要获取UUID的值时,就可以这样获取了result.desc.UUID