0

我有以下格式的 json 数据:

{ "david" :12, "john": "21", "kevin": [{"address":"friendly"}]}}

此数据保存在我的 localhost web 中,在 URL 中: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"}]}}

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

4

3 回答 3

1

首先,好好看看 jQuery 的 ajax 函数,特别是 data 属性(这里)。
指的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)通过本地存储保存:(
注意:这不适用于旧浏览器)阅读: 在 HTML5 localStorage 中存储对象

我希望这可以帮助你

于 2013-06-15T17:29:44.313 回答
1

首先,你的 JSON 是无效的,它最后有一个}不应该存在的。

data: { get_param: 'value' }, 

这是传递以get_paramvalue命名的 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 获得的对象JSON.parse。然后,您可以随时重复使用它。

于 2013-06-15T17:30:08.843 回答
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)。

于 2013-06-15T17:30:32.020 回答