使用mobileFirst javascript适配器读取本地服务器.json文件
是否有任何方法可以从javascript http适配器读取.json文件(位于服务器中)? 我尝试了internet上描述的许多方法,但它们似乎不起作用,因为它们是为浏览器javascript设计的(我遇到了一些错误,如未定义XMLHttpRequest或未定义activeObject) 例如,我使用了这个,但它不起作用:使用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
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而不是文本的形式返回,如果文件在适配器部署本身内部,我们如何检索该文件??