【发布时间】:2014-01-31 10:35:44
【问题描述】:
我想先说我知道我所做的并不理想。 涵盖以下内容:
我需要通过 javascript 更新 JSON 文件中的数据。 这是当前的 JSON 文件:
{
"nextid" : 3,
"ingredients" : [
{
"id": 1,
"name": "onion",
"kilojoules": 180,
"quantity": 1,
"measurement": "whole",
"nutrition": [
{"value": "Fat Total", "quantity": 110},
{"value": "Saturated Fat", "quantity": 46},
{"value": "Sodium", "quantity": 4},
{"value": "Carbohydrates Total", "quantity": 10000},
{"value": "Sugar", "quantity": 5000},
{"value": "Fibre", "quantity": 2000},
{"value": "Proten", "quantity": 1000}
]},
{
"id" : 2,
"name": "carrot",
"kilojoules": 56,
"quantity": 1,
"measurement": "whole",
"nutrition": [
{"value": "Fat Total", "quantity": 66},
{"value": "Saturated Fat", "quantity": 11},
{"value": "Sodium", "quantity": 26},
{"value": "Carbohydrates Total", "quantity": 3000},
{"value": "Sugar", "quantity": 2000},
{"value": "Fibre", "quantity": 1000},
{"value": "Proten", "quantity": 279}
]}
]
}
现在假设我要编辑胡萝卜对象。我在我的 html 页面上构建了一个更新的胡萝卜对象,并将其作为 javascript 中的一个对象。 我需要做什么来使用我的编辑更新源 json?
就像我之前说的,我知道这并不理想。我应该使用数据库来存储和处理数据,但我现在已经铺好床了,我必须让这个工作正常进行,不管它会让你们多么畏缩。
研究告诉我,我需要在服务器端使用 PHP 或 ASP 来收集 javascript 传递给它的参数,但我不知道从哪里开始。
我在 Visual Studio 2012 工作,项目的参数禁止我使用插件。 NuGet 代码库是的,但没有插件。在此基础上,我认为这意味着我不能使用 PHP。我在那里的想法正确吗?
注意:是的,这是为了分配,但更改 json 文件超出了要求的范围。能够动态处理 json 数据对于项目来说已经足够了,我真的很想能够放回一些。
提前致谢
编辑: 可能也应该分享这个。这是打开 json 文件的 javascript。打开的结果存储在名为 ingJson 的脚本范围变量中。
function downloadIngredients() {
$(document).ready(function () {
$.getJSON("/data/ingredientsInfo.js", function (result) {
try
{
ingJson = result;
ingredients = result.ingredients;
ingredients.sort(orderByNameAscending);
buildListBox(ingredients);
}
catch (err) {
alert(err.message);
}
});
});
}
【问题讨论】:
-
那么,JSON文件实际上保存为实际的文本文件?在这种情况下:用 php 打开它,将内容发送到浏览器,用 JavaScript 解析 JSON,编辑对象,再次将其转换为 JSON 字符串,将其发送回 php,然后让 php 覆盖文件。很遗憾,您不能直接在 php.ini 中编辑文件。看看 JavaScript 的 JSON functionality.
-
同意@Cerbrus:基本上你需要做的是在浏览器上加载 JSON,在 JS 中解析它,按照你想要的方式改变它,将它字符串化 - 参见
JSON.stringify( obj )- 然后 POST它回到服务器。无论您使用的是服务器端的哪种技术,因为它只需要读取 POST 并将其写入 JSON 文件。 -
就是这样。我不知道我在服务器端做什么。这确实是我第一次涉足 Web 开发(我通常为 GIS 系统做 C# 接口工作)。我想我要问的是我如何在服务器上做到这一点。对不起,我对此一无所知。
标签: javascript php jquery json asp-classic