使用javascript从localhost webservice保存json数据

时间:2013-06-15 17:15:55

标签: javascript json

我有以下格式的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"}]}}

作为我的结果。我该怎么做?

3 个答案:

答案 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)。