簡體   English   中英

如何使用Javascript讀取iPhone PhoneGap中項目文件夾中的json文件

[英]How to read json file located in project folder in iPhone PhoneGap using Javascript

我必須從位於項目中的文件夾中讀取JSON文件。

我使用以下代碼:

var obj = "www/places.json";

如何使用Javascript讀取iPhone PhoneGap中項目文件夾www中的JSON文件?

您可以像在服務器上一樣閱讀它。

解決方案1 ​​ - jQuery

如果jQuery使用不是問題,那么使用它像這樣:

//Load categories object JSON
jQuery.getJSON("categories.json", function(data){         
    // data is yours parsed object
});

示例:

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"/>
    <script src="http://www.fajrunt.org/js/jquery-1.9.1.min.js"></script>       
    <title>Read JSON Demo</title>

    <script>    
        jQuery.getJSON("categories.json", function(data){         
            alert(data.balance);
        });         
    </script>
</head>

<body>
    Read JSON Demo
</body>
</html>

JSON文件:

{"balance":1000.21,"num":100,"nickname":null,"is_vip":true,"name":"foo"} 

解決方案2 - 純JavaScript

如果您只想使用vanilla javascript,那么這是一個適合您的解決方案

var xmlhttp;
var jsonObject;

// code for IE7+, Firefox, Chrome, Opera, Safari
if (window.XMLHttpRequest)
{
    xmlhttp=new XMLHttpRequest();
}
// code for IE6, IE5
else
{
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange=function()
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        jsonObject = JSON.parse(xmlhttp.responseText);
        alert(jsonObject.balance);                       
    }
}

xmlhttp.open("GET","categories.json",true);
xmlhttp.send();

示例:

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"/>
    <title>Read JSON Demo</title>

    <script>
        var xmlhttp;
        var jsonObject;

        // code for IE7+, Firefox, Chrome, Opera, Safari
        if (window.XMLHttpRequest)
        {
            xmlhttp=new XMLHttpRequest();
        }
        // code for IE6, IE5
        else
        {
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }

        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                jsonObject = JSON.parse(xmlhttp.responseText);
                alert(jsonObject.balance);                       
            }
        }

        xmlhttp.open("GET","categories.json",true);
        xmlhttp.send();
    </script>
</head>

<body>
    Read JSON Demo
</body>
</html>

JSON文件:

{"balance":1000.21,"num":100,"nickname":null,"is_vip":true,"name":"foo"} 

我遇到了同樣的問題並完成了以下片段:

dojo.ready(函數(){

  var xhrArgs = { url: "file:///Users/Desktop/configJSON.txt", handleAs: "json", load: function(data){ targetNode.innerHTML = data; // Your data from JSON alert("Name : "+data.fields[0].name+" Type : "+data.fields[0].type+" Alias : "+data.fields[0].alias +" Editable : "+data.fields[0].editable); }, error: function(error){ // targetNode.innerHTML = "An unexpected error occurred: " + error; alert("An unexpected error occurred: " + error); } } // Call the asynchronous xhrGet var deferred = dojo.xhrGet(xhrArgs); }); </script> 
    </head>

    <body>

              <div id="licenseContainer"></div>
<body>              

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM