首先,我在 json_encode 函数中编码了我的数据。
例如,看起来像这样:
{"test":"test value"}
我想要做的是将测试变成一个javascript变量,它可以保存“测试值”的数据。
首先,我在 json_encode 函数中编码了我的数据。
例如,看起来像这样:
{"test":"test value"}
我想要做的是将测试变成一个javascript变量,它可以保存“测试值”的数据。
$.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 文档...
对象是关联数组。它们存储键/值对。所以你所要做的就是:
var test = function(){}
test["hello"] = "world";
这将设置hello
为变量world
及其值。你可以通过这样做来测试这个
alert(test.hello);
用json 键和值替换hello
andworld
希望这对这个例子有更多帮助:我正在使用 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
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>