- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在使用 simplecartjs 为在线商店提供支持。它将数据存储在本地存储中,如下所示:
{"SCI-1":{"quantity":1,"id":"SCI-1","price":20,"name":"Mattamusta -teippi","size":"Tyhjä"},"SCI-3":{"quantity":1,"id":"SCI-3","price":19,"name":"Mohawk .vaimennusmatto 48 x 39cm"},"SCI-5":{"quantity":2,"id":"SCI-5","price":8,"name":"Car Speaker -hajuste","color":"Green Tea"},"SCI-7":{"quantity":1,"id":"SCI-7","price":50,"name":"Asennuspaketti"},"SCI-9":{"quantity":1,"id":"SCI-9","price":30,"name":"Quartz-kalvot","color":"Yellow","size":"50cm x 30cm"},"SCI-11":{"quantity":1,"id":"SCI-11","price":30,"name":"Quartz-kalvot","color":"True Blue","size":"50cm x 30cm"}}
我想在它关闭之前添加这一行。
"SCI-12":{"quantity":1,"id":"SCI-12","price":5,"name":"Toimituskulut"}
但是,产品的数量将取决于用户,因此 SCI-12 必须随着项目数量的增长而增长。
EDIT 实际上,它不一定要使用SCI-1,它可以是任何东西,只要它在项目之后。
编辑2这就是我正在尝试的......但没有运气。
$("#matkahuolto").click(function(){
var value_object = '"Toimituskulut":{"quantity":1,"id":"Toimituskulut","price":5,"name":"Toimituskulut"}';
var json_object = JSON.parse(localStorage.your_json); // convert string to object
json_object["simpleCart_items"] = value_object; // add value
localStorage.your_json = JSON.stringify(json_object); // store it again.
});
$("#posti").click(function(){
var json_object = JSON.parse(localStorage.your_json); // convert string to object
json_object["simpleCart_items"] = value_object; // add value
localStorage.your_json = JSON.stringify(json_object); // store it again.
});
EDIT3 本地存储的截图。
最佳答案
您需要了解的第一件事是项目如何存储在localStorage 中。 ,它基本上就像一个 HashMap /字典,因为项目存储在键值对中。
例如要存储一个 string
localStorage
你会做类似的事情
localStorage["myKey"] = "some value";
要检索您只需反转的值
var myValue = localStorage["myKey"];
接下来要意识到的是,您实际上只能在本地存储中存储字符串,因此如果您想要存储一个对象,您需要先将其转换为字符串表示形式。这通常通过将对象转换为 JSON 来完成。这是一种紧凑的表示法,用于将对象表示为字符串。要将对象转换为 JSON,您只需使用 JSON.stringify
方法,并使用 JSON.parse
方法解析项目
例如将一个对象转换为JSON
var someObject = {id: 1, name: 'Test'};
var jsonSomeObject = JSON.stringify(someObject);
// jsonSomeObject looks like "{"id":1,"name":"test"}"
并从 JSON 中读取一个对象
someObject = JSON.parse(jsonSomeObject);
所以现在在你的情况下,假设你的对象包含适当的数据,你需要做的就是stringify
你的对象并使用一些键将它添加到localStorage
,
var jsonData = JSON.stringify({"SCI-12":{"quantity":1,"id":"SCI-12","price":5,"name":"Toimituskulut"}});
localStorage["aKey"] = jsonData;
以及当您想稍后访问此数据时(大概是在返回页面之后)
var mySCI = JSON.parse(localStorage["aKey"])
例如,如果您尝试更新 localStorage 中的特定条目,那么您只需读入然后覆盖它
var mySCI = JSON.parse(localStorage["aKey"]);
mySCI.SCI-12.quantity = 2;
localStorage["aKey"] = JSON.stringify(mySCI);
请记住,虽然大多数浏览器内置了对 JSON 的支持,但有些旧浏览器不支持,如果这是一个问题,您可以包括 Douglass Crockfords JSON-js提供支持的脚本。
编辑:
根据您刚刚发布的屏幕截图,您可以看到在 localStorage 中存储值的键实际上是 simpleCart_items(而不是您的代码中使用的 your_json),并且存储的对象具有存储在 key “SCI-1”下的对象(可能还有其他存储在“SCI's”下的对象)。因此您需要做的是类似于以下内容
$("#matkahuolto").click(function(){
var value_object = {quantity: 1, id: 1, name: "someName"} ;
var jsonObject = JSON.parse(localStorage["simpleCart_items"]);
json_object["SCI_1"] = value_object; // add value
localStorage["simpleCart_items"] = JSON.stringify(json_object); // store it again.
});
$("#posti").click(function(){
// convert string to object
var json_object = JSON.parse(localStorage["simpleCart_items"]);
json_object["SCI-1"] = value_object; // add value
localStorage["simpleCart_items"] = JSON.stringify(json_object); // store it again.
});
关于javascript - 修改本地存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12412217/
我正在运行一个辅助角色,并检查 Azure 上托管的存储中是否存在数据。当我将连接字符串用于经典类型的存储时,我的代码可以正常工作,但是当我连接到 V2 Azure 存储时,它会抛出此异常。 “远程服
在我的应用程序的主页上,我正在进行 AJAX 调用以获取应用程序各个部分所需的大量数据。该调用如下所示: var url = "/Taxonomy/GetTaxonomyList/" $.getJSO
大家好,我正在尝试将我的商店导入我的 Vuex Route-Gard。 路由器/auth-guard.js import {store} from '../store' export default
我正在使用 C# 控制台应用程序 (.NET Core 3.1) 从 Azure Blob 存储读取大量图像文件并生成这些图像的缩略图。新图像将保存回 Azure,并将 Blob ID 存储在我们的数
我想将 Mlflow 设置为具有以下组件: 后端存储(本地):在本地使用 SQLite 数据库存储 Mlflow 实体(run_id、params、metrics...) 工件存储(远程):使用 Az
我正在使用 C# 控制台应用程序 (.NET Core 3.1) 从 Azure Blob 存储读取大量图像文件并生成这些图像的缩略图。新图像将保存回 Azure,并将 Blob ID 存储在我们的数
我想将 Mlflow 设置为具有以下组件: 后端存储(本地):在本地使用 SQLite 数据库存储 Mlflow 实体(run_id、params、metrics...) 工件存储(远程):使用 Az
我的 Windows 计算机上的本地文件夹中有一些图像。我想将所有图像上传到同一容器中的同一 blob。 我知道如何使用 Azure Storage SDKs 上传单个文件BlockBlobServi
我尝试发出 GET 请求来获取我的 Azure Blob 存储帐户的帐户详细信息,但每次都显示身份验证失败。谁能判断形成的 header 或签名字符串是否正确或是否存在其他问题? 代码如下: cons
这是用于编写 JSON 的 NeutralinoJS 存储 API。是否可以更新 JSON 文件(推送数据),而不仅仅是用新的 JS 对象覆盖数据。怎么做到的??? // Javascript
我有一个并行阶段设置,想知道是否可以在嵌套阶段之前运行脚本,所以像这样: stage('E2E-PR-CYPRESS') { when { allOf {
我想从命令行而不是从GUI列出VirtualBox VM的详细信息。我对存储细节特别感兴趣。 当我在GUI中单击VM时,可以看到包括存储部分在内的详细信息: 但是到目前为止,我还没有找到通过命令行执行
我有大约 3500 个防洪设施,我想将它们表示为一个网络来确定流动路径(本质上是一个有向图)。我目前正在使用 SqlServer 和 CTE 来递归检查所有节点及其上游组件,只要上游路径没有 fork
谁能告诉我 jquery data() 在哪里存储数据以及何时删除以及如何删除? 如果我用它来存储ajax调用结果,会有性能问题吗? 例如: $("body").data("test", { myDa
有人可以建议如何为 Firebase 存储中的文件设置备份。我能够备份数据库,但不确定如何为 firebase 存储中的文件(我有图像)设置定期备份。 最佳答案 如何进行 Firebase 存储的本地
我最近开始使用 firebase 存储和 firebase 功能。现在我一直在开发从功能到存储的文件上传。 我已经让它工作了(上传完成并且文件出现在存储部分),但是,图像永远保持这样(永远在右侧加载)
我想只允许用户将文件上传到他们自己的存储桶中,最大文件大小为 1MB,仍然允许他们删除文件。我添加了以下内容: match /myusers/{userId}/{allPaths=**} { al
使用生命周期管理策略将容器的内容从冷访问层移动到存档。我正在尝试以下策略,希望它能在一天后将该容器中的所有文件移动到存档层,但事实并非如此在职的。我设置了选择标准“一天未使用后”。 这是 json 代
对于连接到 Azure 存储端点,有 http 和 https 两个选项。 第一。 https 会带来开销,可能是 5%-10%,但我不支付同一个数据中心的费用。 第二。 http 更快,但 Auth
有人可以帮我理解这一点吗?我创建了Virtual Machine in Azure running Windows Server 2012 。我注意到 Azure 自动创建了一个存储帐户。当我进入该存
我是一名优秀的程序员,十分优秀!