Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用mobileFirst javascript适配器读取本地服务器.json文件_Javascript_Json_Ibm Mobilefirst_Mobilefirst Adapters - Fatal编程技术网

使用mobileFirst javascript适配器读取本地服务器.json文件

使用mobileFirst javascript适配器读取本地服务器.json文件,javascript,json,ibm-mobilefirst,mobilefirst-adapters,Javascript,Json,Ibm Mobilefirst,Mobilefirst Adapters,是否有任何方法可以从javascript http适配器读取.json文件(位于服务器中)? 我尝试了internet上描述的许多方法,但它们似乎不起作用,因为它们是为浏览器javascript设计的(我遇到了一些错误,如未定义XMLHttpRequest或未定义activeObject) 例如,我使用了这个,但它不起作用: function readTextFile(file) { var rawFile = new XMLHttpRequest(); rawFile.open

是否有任何方法可以从javascript http适配器读取.json文件(位于服务器中)? 我尝试了internet上描述的许多方法,但它们似乎不起作用,因为它们是为浏览器javascript设计的(我遇到了一些错误,如未定义XMLHttpRequest或未定义activeObject)

例如,我使用了这个,但它不起作用:

function readTextFile(file)
{
    var rawFile = new XMLHttpRequest();
    rawFile.open("GET", file, false);
    rawFile.onreadystatechange = function ()
    {
        if(rawFile.readyState === 4)
        {
            if(rawFile.status === 200 || rawFile.status == 0)
            {
                var allText = rawFile.responseText;
                return allText;
            }
        }
    }
    rawFile.send(null);
}  

有没有办法不用java就可以做到这一点?

对于那些对使用java感兴趣的人来说

您可以做的一件事是创建一个使用Java代码的Javascript适配器。设置起来很简单

首先创建一个Javascript适配器

然后在
server/lib
文件夹下创建一个Java类。我在包
com.sample.customcode
下创建了类
ReadJSON.java

ReadJSON.java

public class ReadJSON {
    public static String readJSON() throws IOException {
       //Open File
        File file = new File("file.txt");
        BufferedReader reader = null;
        try {
           //Create the file reader
            reader = new BufferedReader(new FileReader(file));
            String text = null;

            //read file
            while ((text = reader.readLine()) != null) {}
        } finally {
             try {
                 //Close the stream
                 reader.close();
             } 
        }
        return "the text from file";
    }
}
在javascript适配器中,您可以使用如下Java方法:

function readJOSN() {
    var JSONfromServer = com.sample.customcode.ReadJSON.readJSON();
    return {
        result: JSONfromServer
    };

}

希望这有帮助。

您可以使用Javascript读取文件,如下所示

function readFile(filename) {
    var content = "";

    var fileReader = new java.io.FileReader(filename);

    var bufferedReader = new java.io.BufferedReader(fileReader);

    var line;

    while((line = bufferedReader.readLine()) != null) {
        content += line;
    }   

    bufferedReader.close();

    return content;
}

function test() {
    var file = 'yourfilename.json';
    var fileContents;
    try {
         fileContents = JSON.parse(readFile(file));     
    }  catch(ex) {
        // handle error                
    }

    return  {
        fileContents: fileContents
    };
}

您计划将JSON文件存储在哪里?正如我所说,.JSON文件将位于服务器内部。我的答案是使用Java。感谢您的宝贵帮助。我希望这可以通过一个javascript适配器来实现。。。非常有帮助的回答,但有一个非常小的更正:我使用了fileContents=JSON.parse(readFile(file));为了让返回的对象以JSON而不是文本的形式返回,如果文件在适配器部署本身内部,我们如何检索该文件??