在线javascript解析json数据

时间:2015-11-26 08:58:37

标签: javascript php json

我试图用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>   

1 个答案:

答案 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
});