我有以下格式的json数据:
{ "david" :12, "john": "21", "kevin": [{"address":"friendly"}]}}
此数据保存在我的localhost网站上,网址为:localhost8080/example/search?data=1
我想使用javascript / jQuery将这些数据保存在变量中,然后解析我以后需要的信息,我找了一些方法来做到这一点,我找到了以下内容:
$(document).ready(function () {
$.ajax({
type: 'GET',
url: 'localhost8080/example/search?data=1',
data: { get_param: 'value' },
success: function (data) {
var names = data
$('#a_div').html(data);
}
});
});
data: { get_param: 'value' }
行在做什么?我不想获取某些数据,我想保存整个json数据并将其保存为如下所示的var:
var example1 = { "david" :12, "john": "21", "kevin": [{"address":"friendly"}]}}
作为我的结果。我该怎么做?
答案 0 :(得分:1)
首先,仔细看看jQuery的ajax函数,特别是数据属性(here)。
get_param
指的是GET请求,而不是接收动词。
要回答你的问题,我会将答案拆分为我目前看到的两个选项:
1)将数据保存在数据库中。
(假设你使用的是php)
我会按如下方式重写ajax:
var exampleJSON = { "david" :12, "john": "21", "kevin": [{"address":"friendly"}]}}
$.ajax({
type: 'POST',
url: 'localhost8080/example/saveData.php', // You need to create this page
data: { data: exampleJSON },
success: function (data) {
alert("Completed saving data")
}
});
然后在saveData.php
中
您可以使用以下命令获取jQuery发送的数据:$_POST['data']
然后,您将根据需要处理信息(插入数据库,cookie等...)
2)通过本地存储保存:
(注意:这不适用于旧浏览器)
读:
Storing Objects in HTML5 localStorage
我希望这有助于你
答案 1 :(得分:1)
首先,你的JSON无效,最后有一个}
,不应该在那里。
data: { get_param: 'value' },
这是传递名为get_param
的POST数据,其值为value
。如果您不需要将数据传递给请求,则可以安全地将其删除。
var dataSaved;
$(document).ready(function () {
$.ajax({
type: 'GET',
url: 'localhost8080/example/search?data=1',
success: function (data) {
dataSaved = JSON.parse(data);
$('#a_div').html(data);
}
});
});
通过执行此操作,您将使用请求检索的数据保存到dataSaved
变量,该变量将是通过JSON.parse
解析JSON获得的对象。然后您可以随时重复使用它。
答案 2 :(得分:1)
data属性没有指定从服务器获取的数据,它指定了附加到您正在访问的URL的查询参数(无论如何都是GET)。 (见jQuery.ajax)
您可以使用:
$.ajax({
type: 'GET',
url: 'localhost:8080/example/search?data=1',
success: function (data) { ... }
});
或
$.ajax({
type: 'GET',
url: 'localhost:8080/example/search',
data: {data: 1},
success: function (data) { ... }
});
这些都会导致对 localhost:8080 / example / search?data = 1 的请求。
由于您希望将JSON数据保存在变量中,因此可以考虑使用jQuery.getJSON()(请参阅jQuery.getJSON)。