Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript中的嵌套对象数组字符串化对象 JSON=newobject();JSON.stringify=function(e){var e=e;var c={}.hasOwnProperty?true:false;var d=function(i){return i_Javascript_Stringify - Fatal编程技术网

使用Javascript中的嵌套对象数组字符串化对象 JSON=newobject();JSON.stringify=function(e){var e=e;var c={}.hasOwnProperty?true:false;var d=function(i){return i

使用Javascript中的嵌套对象数组字符串化对象 JSON=newobject();JSON.stringify=function(e){var e=e;var c={}.hasOwnProperty?true:false;var d=function(i){return i,javascript,stringify,Javascript,Stringify,您对的理解以及如何引用对象(一般)是这里的问题 不应将新对象分配给JSON,因为JSON是本机对象。这样做会清除该对象引用 即使您没有删除对本机JSON对象的引用,JSON.stringify是一个方法,应该将您希望stringify的内容作为参数传递给它。您不会为其分配函数,因为这将删除已存储在其中的函数 console.log(JSON.stringify);//本机对象已准备就绪 JSON=new Object();//这将清除对该对象的引用 console.log(JSON.strin

您对的理解以及如何引用对象(一般)是这里的问题

不应将新对象分配给
JSON
,因为
JSON
是本机对象。这样做会清除该对象引用

即使您没有删除对本机
JSON
对象的引用,
JSON.stringify
是一个方法,应该将您希望stringify的内容作为参数传递给它。您不会为其分配函数,因为这将删除已存储在其中的函数

console.log(JSON.stringify);//本机对象已准备就绪
JSON=new Object();//这将清除对该对象的引用

console.log(JSON.stringify);//现在,该方法不存在!
JSON=new Object();
将覆盖本机
JSON
对象,下一个命令
JSON.stringify()
将失败,因为新对象没有
stringify()
方法。为什么要这样做?如果我更改:myFile.write(JSON.stringify(myNewObject,未定义,“\r\n”);写入:myFile.write(JSON.stringify(myUserObject,未定义,“\r\n”));对象已正确字符串化。只有当我尝试将对象推送到数组中时,我在Main上才会出现错误。您不应该覆盖该对象。:S尝试使用本机对象。^^^感谢Scott的回答。我有一个快速跟进的问题,如果我想使用key3:成为多个对象的数组,我如何使其字符串化@bhamlefty24您根本不做任何特殊的操作。只需将主对象的。
JSON=new Object();JSON.stringify=function(e){var e=e;var c={}.hasOwnProperty?true:false;var d=function(i){return i<10?"0"+i:i};var a={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};function b(i){if(/["\\\x00-\x1f]/.test(i)){return'"'+i.replace(/([\x00-\x1f\\"])/g,function(k,j){var l=a[j];if(l){return l}return j})+'"'}return'"'+i+'"'}function f(q){var m=["["],j,p,k=q.length,n;for(p=0;p<k;p+=1){n=q[p];switch(typeof n){case"undefined":case"function":case"unknown":break;default:if(j){m.push(",")}m.push(n==null?"null":JSON.parse(n));j=true}}m.push("]");return m.join("")}function h(i){return'"'+i.getFullYear()+"-"+d(i.getMonth()+1)+"-"+d(i.getDate())+"T"+d(i.getHours())+":"+d(i.getMinutes())+":"+d(i.getSeconds())+'"'}function g(n){if(typeof n=="undefined"||n===null){return"null"}else{if(n instanceof Date){return h(n)}else{if(typeof n=="string"){return b(n)}else{if(typeof n=="number"){return isFinite(n)?String(n):"null"}else{if(typeof n=="boolean"){return String(n)}else{if(n instanceof Array){return f(n)}else{var k=["{"],j,m,l;for(m in n){l=n[m];switch(typeof l){case"undefined":case"function":case"unknown":break;default:if(j){k.push(",")}k.push(g(m),":",l===null?"null":g(l));j=true}}k.push("}");return k.join("")}}}}}}}return g(e)};JSON.parse=function(json){return eval("("+json+")")};

        var myUserObject = {
                    "name": "John Doe",
                    "company": "Oracle",
                    "twitter" : "@johndoe",      
                  };


        myNewObject['users']=[];
        myNewObject['users'].push(myUserObject);

    alert(myNewObject.users[0].name)



var myFile = new File ("~/Desktop/test.json");

    if(myFile.open("w")){
        myFile.encoding = "UTF-8";
        myFile.write(JSON.stringify(myNewObject, undefined, "\r\n"));
        myFile.close();

        }