如何在页面重定向后保存包含纯JavaScript对象的数组?
我曾研究过从数组中创建一个字符串,然后将其作为cookie发送,但这个数组非常复杂,因为它包含具有自己属性的对象 阵列中一个对象的示例:如何在页面重定向后保存包含纯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",
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,现在工作正常。