你好即可。我目前正在开展一个小项目并且遇到以下问题,我似乎无法单独解决这个问题。我试图寻找一个没有运气的解决方案。不可否认,我在JavaScript / jQuery上相当陌生并没有帮助,所以我不确定“正确”的搜索条件!
我有一个包含以下代码的JSON文件:
var draft = {
"title": "Title",
"subtitle": "Subtitle",
"image": "/image.jpeg",
}
然后我用以下行检索JSON数据:
draft["title"];
根据应用程序需要实现的目标 - 有没有办法使用变量的值代替“ draft ”来访问JSON数据?我有一个AJAX函数,它提取JSON文件的文件名和扩展名,然后通过删除斜杠,数字,连字符和文件扩展名将以下代码行将文件名简化为一个单词:
var fileNameRefined = fileName.replace("/", "").replace(/\d+|-/g, "").replace(".json", "");
因此,“ fileNameRefined ”变量将包含值“ draft ”。这按预期输出到控制台。也就是说,它不适用于JSON。我希望以下几行代码能以完全相同的方式工作:
draft["title"];
fileNameRefined["title"]; // var fileNameRefined = draft
不幸的是,结果数据以“未定义”的形式返回。我假设应用程序将变量的名称视为字符串而不是传递变量的值?我不确定。
有人有解决方法吗?任何帮助将不胜感激。
谢谢,全部。
答案 0 :(得分:1)
可以完成, SHOULDN' T 。
使用JSON(这是您提供的JS对象)及其API。以下是jQuery的示例,其他libs / frameworks也有类似的示例。
我总是会使用fw或lib来获取清晰的Ajax API,而不是自己在vanilla中编写它。
这里是小提琴中的JSON示例(不是我写的): json get fiddle
function getSuccessOutput() {
$.ajax({
url:'/echo/js/?js=hello%20world!',
complete: function (response) {
$('#output').html(response.responseText);
},
error: function () {
$('#output').html('Bummer: there was an error!');
},
});
return false;
}
对于JSON api,您将有兴趣使用JSON.parse()
var obj = JSON.parse('{ "name":"John", "age":30, "city":"New York"}');