-2

首先,我在 json_encode 函数中编码了我的数据。

例如,看起来像这样:

{"test":"test value"}

我想要做的是将测试变成一个javascript变量,它可以保存“测试值”的数据。

4

3 回答 3

0
$.getJSON('ajax/test.json', function(data) {
  var items = [];

  $.each(data, function(key, val) {
    items.push('<li id="' + key + '">' + val + '</li>');
  });

  $('<ul/>', {
    'class': 'my-new-list',
    html: items.join('')
  }).appendTo('body');
});

直接来自 jquery 文档...

于 2012-05-18T20:57:24.557 回答
0

对象是关联数组。它们存储键/值对。所以你所要做的就是:

var test = function(){}
test["hello"] = "world";

这将设置hello为变量world及其值。你可以通过这样做来测试这个

alert(test.hello);

用json 键和值替换helloandworld

希望这对这个例子有更多帮助:我正在使用 Jquery AJAX 去 index.php 资源并返回一个 json 对象。

索引.php

<?php
$variables = array('hello' => 'world');
echo json_encode($variables);
?>

例子.html

var test = function(){}
$.ajax({
   url: index.php,
   success: function(json) {
    for(var key in json ){
     var testVarName = key;
     var testVarValue = json[key];
     test[testVarName ] = testVarValue;
    }
}
});

所以现在test对象有变量hello,它的值是world

于 2012-05-21T21:21:34.293 回答
0

index.php(json_encode在这里使用):

<?php
  $foo = array('test' => 'test value');
  echo json_encode($foo);
?>

例子.html

<script type="text/javascript">

  $.get('index.php', function(response) {
    alert(response['test']);
    // this will alert "test value"
  }, 'json');

</script>

EDIT1:example.html (无jQuery解决方案):

<script type="text/javascript">

window.onload = function() {
    var request;
    request = getHTTPObject();
    request.onreadystatechange = sendData;
    request.open("GET", "index.php", true);
    request.send(null);
}

function sendData() {
    if(request.readyState == 4){
    var JSONtext = request.responseText;
    var JSONobject = JSON.parse(JSONtext);

    // notice how variables are used
    var output = JSONobject.test;

    alert(output); // displays "test value"
}


function getHTTPObject(){
    var xmlhttp = false;
    if(window.XMLHttpRequest){
        xmlhttp = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        try{
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e){
            try{
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e) {
                xmlhttp = false;
            }
        }
    }
    return xmlhttp;
}
</script>
于 2012-05-21T21:37:20.507 回答