目前我发送以下JSON
{"约翰":[{"硬币":" 600"" FIRST_NAME":"约翰" }]}
我怀疑换线应该在那里。我想在这种情况下获取硬币的值600并将其显示在div中。
function importCoins(str) {
if (str=="") {
document.getElementById("coins").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status == 200){
alert(xmlhttp.response);
data = JSON.parse(xmlhttp.response);
receivedData(data);
}
}
function receivedData(data) {
document.write(data.Coins);
};
xmlhttp.open("GET","http://server/~name/folder/extractUser.php");
xmlhttp.responseType = "json";
xmlhttp.send();
}
importCoins();
这是我的PHP代码:
include("mysqlconnect.php");
$query = "SELECT Coins, First_name FROM users WHERE Id = 1";
$result = mysql_query($query) or die (mysql_error());
$data = array();
while($rows = mysql_fetch_array($result,MYSQL_ASSOC)){
$data[$rows['First_name']][] = $rows;
}
echo json_encode($data);
答案 0 :(得分:1)
并将其显示在div
中
假设您的 HTML 中有<div id="my_target"></div>
,则可以在其中设置文字
var elm = document.getElementById('my_target'); // HTMLElement or null
elm.textContent = 'foo'; // set it's text to "foo"
仅在元素存在后才能使用。换句话说,您需要等待页面完成加载或仅在元素的关闭标记后的<script>
标记中启动此代码
现在,假设你有一个 JavaScript对象 var o = {bar: 'baz'};
,你可以像这样访问它的属性
o['bar']; // "baz" (the value by accessing _key_ "bar" from _Object_ o
如果您不了解对象中的键,则可以for..in
循环播放
var key;
for (key in o) {
console.log(key, o[key]); // logs "bar" "baz"
}
要在调用某些内容之前等待当前页面完成加载,请在 Window对象上侦听加载事件
window.addEventListener('load', function () {
// code to invoke after page has loaded
});
最后,当使用 XMLHttpRequest 来获取JSON时,您可以使用内置方法自动为它解析它,这样您就可以在最后获得 JavaScript Object 。
var xhr = new XMLHttpRequest(),
method = 'GET',
url = "http://server/~name/folder/extractUser.php";
xhr.addEventListener('load', function (e) {
// code to invoke after receiving response
console.log(this.response); // let's log the object
});
xhr.open(method, url);
xhr.responseType = 'json'; // let the request know to expect JSON
xhr.send();
全部放在一起;
function getJSON(url, callback) {
var xhr = new XMLHttpRequest(),
method = 'GET';
xhr.addEventListener('load', function (e) {
callback(this.response);
});
xhr.open(method, url);
xhr.responseType = 'json';
xhr.send();
}
function displayCoins(obj) {
var elm = document.getElementById('my_target');
elm.textContent = obj["John"][0]["Coins"];
}
window.addEventListener('load', function () { // wait for page to load
// then invoke it
getJSON("http://server/~name/folder/extractUser.php", displayCoins);
});
最后的说明;当您遇到 JavaScript 问题或正在调试时,始终检查您的控制台输出。这为您提供了更多信息,通常会让您发现问题,如果不知道要向谷歌发送哪条错误消息。
我很难调整您的最终解决方案以适应
var key; for (key in o) { console.log(key, o[key]); // logs "bar" "baz" }
您是否可以编辑已完成的解决方案以获得未知密钥
我没有包含此内容,因为如果您的对象中只有许多键,或者只有一个键,我就不知道您想要的行为。我假设这个例子只有一个;
将for..in
循环放入displayCoins
功能
function displayCoins(obj) {
var elm = document.getElementById('my_target'),
key;
for (key in obj) {
elm.textContent = obj[key][0]["Coins"];
break; // stop after first key
}
}
答案 1 :(得分:0)
您可以将其传递给variable
并执行:
var a = {"John":[{"Coins":"600","First_name":"John"}]};
console.log(a.John[0].Coins); //"600"