2016-05-24 17 views
1

javascript httpアダプタから.jsonファイル(サーバーにある)を読み取る方法はありますか? 私はインターネットで説明されている多くのメソッドを試しましたが、ブラウザのjavascript(XMLHttpRequestが定義されていないか、またはactiveObjectが定義されていないなどのエラーが発生しているため)で動作しないようです。mobileFirst javascriptアダプタを使用してローカルサーバー.jsonファイルを読み取る

例えば、私はこれを使用するが、それは動作しません:

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を使用せずにこれを行うことが方法はありますか?

+0

ここで、JSONファイルを保存する予定はありますか? –

+0

私が言ったように、.jsonファイルはサーバーの内部にあります。 – papakias

答えて

2

以下のように、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 
    }; 
} 
+0

私が欲しかったものを正確に!あなたは上司です。 – papakias

+1

非常に小さい修正:私は行を使用しました fileContents = JSON.parse(readFile(file)); 返されたオブジェクトがテキストではなくJSONとして返されるようにする – papakias

+0

ファイルがアダプタ展開自体の内部にある場合、そのファイルを取得するにはどうすればよいですか? – edwin

0

Javaを使用するには

あなたができることの1つは、Javaコードを使用するJavascriptアダプタを作成することです。セットアップはかなり簡単です。

最初にJavascriptアダプタを作成します。

次に、server/libフォルダの下にJavaクラスを作成します。私はクラスReadJSON.javaをパッケージcom.sample.customcodeで作成しました。 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 
    }; 

} 

希望を。

+0

私の答えはJavaを使用しています。 –

+0

貴重なご協力ありがとうございます。私はこれがjavascriptのアダプターだけでやってくれることを願っていました...それでも、非常に役に立つ答え – papakias

関連する問題