我试图用php文件链接从在线数据库解析json数据,我不知道该怎么做。 一般来说,我知道解析json数据是这样的。
<script>
var data = '{"name": "mkyong","age": 30,"address": {"streetAddress": "88 8nd Street","city": "New York"},"phoneNumber": [{"type": "home","number": "111 111-1111"},{"type": "fax","number": "222 222-2222"}]}';
var json = JSON.parse(data);
alert(json["name"]); //mkyong
alert(json.name); //mkyong
alert(json.address.streetAddress); //88 8nd Street
alert(json["address"].city); //New York
alert(json.phoneNumber[0].number); //111 111-1111
alert(json.phoneNumber[1].type); //fax
alert(json.phoneNumber.number); //undefined
</script>
但是,如果我用php创建一个json文件并且它有链接
www.example.com/parse.php
我希望该链接将其与另一个服务器中的另一个html文件连接起来,如
www.example2.com/parsehere.html
有上面的代码没有把json数据内联,但是从php的链接加载它? 这可能吗?
所有我想做的就是在这个脚本里面加载来自url的数据,而不是像上面的脚本那样从原始json数据加载。
<script>
//here something to load data from a link and parse it below.
var json = JSON.parse(data);
alert(json["name"]); //mkyong
alert(json.name); //mkyong
alert(json.address.streetAddress); //88 8nd Street
alert(json["address"].city); //New York
alert(json.phoneNumber[0].number); //111 111-1111
alert(json.phoneNumber[1].type); //fax
alert(json.phoneNumber.number); //undefined
</script>
答案 0 :(得分:1)
如果我正在阅读你的问题,你想要一个php脚本来生成json吗? 下面是我制作的php脚本的一部分,它返回json。这是另存为file.php并通过网络调用。
$return_arr = array();
while($row = mysql_fetch_assoc($dbresult)) {
if($row["firstletter"] != '')
{
$row_array['id'] = $row['id'];
$row_array['firstletter'] = $row['firstletter'];
$row_array['languageid'] = $row['languageid'];
$row_array['word'] = $row['word'];
$row_array['description'] = $row['description'];
$row_array['imageList'] = $row['imageList'];
array_push($return_arr,$row_array);
}
}
header("Access-Control-Allow-Origin: *");
header("Content-type: application/json");
$json = json_encode($return_arr);
echo $json;
要获取你的php-json,请在你的代码中使用它:
var HttpClient = function() {
this.get = function(aUrl, aCallback) {
var anHttpRequest = new XMLHttpRequest();
anHttpRequest.onreadystatechange = function() {
if (anHttpRequest.readyState == 4 && anHttpRequest.status == 200)
aCallback(anHttpRequest.responseText);
}
anHttpRequest.open( "GET", aUrl, true );
anHttpRequest.send( null );
}
}
然后进行实际通话使用:
var myClient = new HttpClient();
myClient.get('http://yourphp.php', function(response) {
// Do what you want with the response
});