Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.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对象的数组?_Javascript_Html_Arrays - Fatal编程技术网

如何在页面重定向后保存包含纯JavaScript对象的数组?

如何在页面重定向后保存包含纯JavaScript对象的数组?,javascript,html,arrays,Javascript,Html,Arrays,我曾研究过从数组中创建一个字符串,然后将其作为cookie发送,但这个数组非常复杂,因为它包含具有自己属性的对象 阵列中一个对象的示例: var other0 = { name: "Where the Seas Meet", preview: "Lorem ipsum dolor sit amet, consectetur adipiscing", url: "other/where-the-seas-meet.html",

我曾研究过从数组中创建一个字符串,然后将其作为cookie发送,但这个数组非常复杂,因为它包含具有自己属性的对象

阵列中一个对象的示例:

var other0 = {
  name: "Where the Seas Meet",
  preview: "Lorem ipsum dolor sit amet, consectetur adipiscing",
  url: "other/where-the-seas-meet.html",
  keywords: ["sea", "ocean", "temperature", "salinity", "density",
    "mediterranean", "atlantic", "water", "waves", "fresh", "salty", "barrier",
    "partition", "estuary", "division", "seperation"]
};

我正在重定向我的页面,然后我想访问数组并将其对象属性写入html文档,但我不知道如何仅使用JS存储数组?

一种非常简单的方法是使用JSON
假设我们有一个对象数组
objArr
,其中包含两个对象
other0
other1

我们可以使用
JSON.stringify(objArr)
,这样out数组现在就可以转换成JSON格式了。
stringify
的结果存储到变量中(我们称之为
jsonArr
)将允许我们稍后使用它来检索数据。
当重定向发生而不是直接转到页面的url时,我们选择转到
yourPageURL?jsonArr
,其中
jsonArr
是stringify的结果,
是允许http将数据从一个页面传送到另一个页面的标记。
剩下的就是检索数据并将其转换回对象数组
在页面的代码(我们重定向到的代码)中,您只需使用
document.url.split('?')[1]
从url中提取jsonArr,并将JSON数据存储到变量中(我们称之为
jsonArr2
)。
最后,我们使用
JSON.parse(jsonArr2)
检索原始对象数组。
这是您需要的代码:

/*------------原始页面的代码-----------------*/
变量0={
名称:“海洋交汇处”,
预览:“Lorem ipsum dolor sit amet,Concertetur Adipising”,
url:“other/where the seas Conference.html”,
关键词:[“海洋”、“海洋”、“温度”、“盐度”、“密度”,
“地中海”、“大西洋”、“水”、“波浪”、“新鲜”、“咸”、“屏障”,
“分割”、“河口”、“分割”、“分离”]
};
变量1={
名称:“大脚”,
预览:“Lorem ipsum dolor sit amet”,
url:“其他/myUrl.html”,
关键词:[“雪”、“大”、“脚”、“怪物”]
};
var objArr=[other0,other1];
var jsonArr=JSON.stringify(objArr);
log(“在这里您可以看到转换的效果:\n这是原始数组:\n”,objArr,“\n这是生成的json字符串:\n”,jsonArr);
//在这里,您可以重定向到youPageUrl?jsonArr
/*---------------重定向页面的代码-----------------*/
var jsonArr2=document.URL.split(“?”)[1]//这是上一页中的jsonArr

var objArr2=JSON.parse(jsonArr2)//这是上一页中的objar
您也可以将其添加到cookie中,然后再将其添加到cookie中。当我这样做时,我在chrome调试器VM201:1 Uncaught SyntaxError中得到一个错误:在onload的displayResults(article nav.js:142)的JSON.parse()位置0处的JSON中出现意外的标记j(search.html?jsonArr:13)displayResults@article nav.js:142 onload@search.html?jsonArr:13hi,这是因为在重定向到search.html页面时,您使用了变量名
jsonArr
而不是它的值。
jsonArr
是一个包含字符串的变量(这是原始对象数组的json表示)我的意思是,你重定向到search.html?whateverIsContainedIntojsonArr。错误只是说,它没有找到正确的JSON起始字符,而是找到了jsonArr的第一个字母“j”,所以只需输入它包含的字符串而不是它的名称,就可以了!谢谢,但现在它给了我这个错误:Uncaught SyntaxError:JSON中位置2处的意外标记%错误的原因可能取决于不同的原因,重定向和数据检索?如果您的代码托管在某个地方,请发布链接,我会看一看谢谢,我使用了cookie,现在工作正常。