从URL获取并解析JSON-String

时间:2016-10-03 16:55:17

标签: javascript html json parsing url

我怎样才能将这个json-data-string作为一个变量并将其解析为一些有用的东西?

字符串的网址: http://intranet.ooelfv.at/webext2/getjson.php?scope=laufend&callback=?

我对js和json很新,所以关于如何进入这个主题的一些建议会很棒。

谢谢你, Stoani

3 个答案:

答案 0 :(得分:0)

这是一个简单的可运行示例,只是将数据内容记录到您的控制台

<!DOCTYPE html>
<html lang="de">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    function getData(jsonp){
        console.log(jsonp);
    }

    var scripts = document.createElement('script');
    scripts.src = 'http://intranet.ooelfv.at/webext2/getjson.php?scope=laufend&callback=getData';
    document.body.appendChild(scripts);
</script>
</body>
</html>

您可以通过修改getData函数来访问数据。例如,要获得标题,您可以使用

function getData(jsonp){
    console.log(jsonp.title);
}

答案 1 :(得分:0)

返回字符串的形成存在一些错误 我在你的返回字符串中做了一些调整,并在site上粘贴它。
我认为您需要一些东西来获取密钥及其各自的值:

    var data = '{"webext2":true,"version":"1.2","title":"laufende Eins\u00e4tze","pubDate":"Mon, 03 Oct 2016 19:01:02 +0200","cnt_feuerwehren":3,"cnt_einsaetze":2,"einsaetze":{"0":{"einsatz":{"num1":"E161000221","einsatzort":"PE - PABNEUKIRCHEN","startzeit":"Mon, 03 Oct 2016 18:24:17 +0200","inzeit":"","status":"offen","alarmstufe":1,"einsatzart":"BRAND","einsatztyp":{"id":"BK","text":"BRAND KLEIN FEUERWEHREINSATZ"},"einsatzsubtyp":{"id":"KAMIN-BK","text":"BRAND KAMIN"},"adresse":{"default":"NEUDORF 21","earea":"NEUDORF","emun":"PABNEUKIRCHEN","efeanme":"NEUDORF","estnum":"21","ecompl":""},"wgs84":{"lng":14.829464095886,"lat":48.349240803097},"bezirk":{"id":7,"text":"Perg"},"cntfeuerwehren":2,"feuerwehren":{"407107":{"feuerwehr":"FF Pabneukirchen"},"407109":{"feuerwehr":"FF Riedersdorf"}}}},"1":{"einsatz":{"num1":"E161000213","einsatzort":"RI - RIED IM INNKREIS","startzeit":"Mon, 03 Oct 2016 17:57:39 +0200","inzeit":"","status":"offen","alarmstufe":1,"einsatzart":"TEE","einsatztyp":{"id":"TK","text":"TECHNISCH KLEIN FEUERWEHREINSATZ"},"einsatzsubtyp":{"id":"OELSPUR-TK","text":"\u00d6LSPUR, \u00d6LAUSTRITT"},"adresse":{"default":"RIED IM INNKREIS","earea":"RIED IM INNKREIS","emun":"RIED IM INNKREIS","efeanme":"","estnum":"","ecompl":"SCH\u00c4RDINGER TOR"},"wgs84":{"lng":13.488453771887,"lat":48.212407174905},"bezirk":{"id":8,"text":"Ried"},"cntfeuerwehren":1,"feuerwehren":{"408223":{"feuerwehr":"FF Ried im Innkreis"}}}}}}';
    var jsondata = JSON.parse(data);
    check_json_data(jsondata);

    function check_json_data(jsondata) {
        for (var propertyName in jsondata) {
            if (propertyName) {
                if (typeof jsondata[propertyName] == 'object') {
                    check_json_data(jsondata[propertyName]);
                }
                else {
                    console.log(propertyName + ": " + jsondata[propertyName])
                }
            }
        }
    }

输出:
webext2:true
版本:1.2
标题:laufendeEinsätze
pubDate:Mon,03 Oct 2016 19:01:02 +0200
cnt_feuerwehren:3
cnt_einsaetze:2
num1:E161000221
einsatzort:PE - PABNEUKIRCHEN
startzeit:星期一,2016年10月3日18:24:17 +0200
inzeit:
状态:offen
alarmstufe:1
einsatzart:brAND
id:BK
文字:BRAND KLEIN FEUERWEHREINSATZ
id:KAMIN-BK
文字:BRAND KAMIN
默认:NEUDORF 21
earea:NEUDORF
emun:PABNEUKIRCHEN
efeanme:NEUDORF
estnum:21
ecompl:
lng:14.829464095886
纬度:48.349240803097
id:7
文字:Perg
cntfeuerwehren:2
feuerwehr:FF Pabneukirchen
feuerwehr:FF Riedersdorf
num1:E161000213
einsatzort:RI - RIED IM INNKREIS
startzeit:星期一,2016年10月3日17:57:39 +0200
inzeit:
状态:offen
alarmstufe:1
einsatzart:TEE
id:TK
文字:TECHNISCH KLEIN FEUERWEHREINSATZ
id:OELSPUR-TK
文:ÖLSPUR,ÖLAUSTRITT
默认:RIED IM INNKREIS
earea:RIED IM INNKREIS
emun:RIED IM INNKREIS
efeanme:
estnum:
ecompl:SCHÄRDINGERTOR
lng:13.488453771887
纬度:48.212407174905
id:8
文:里德
cntfeuerwehren:1
feuerwehr:FF Ried im Innkreis

答案 2 :(得分:-2)

我认为你可以使用ajax。

if($.mobile.media("screen")){
   $('meta[name=viewport]').attr('content','Your stuffs');
}

这是一个完整的示例,您可以在其中找到有关此内容的信息。

http://api.jquery.com/jquery.getjson/