ローカルに保存してあるJSONを読込む
- <!DOCTYPE html>
- <html lang="ja">
- <head>
- <meta charset="UTF-8">
- <title>ローカルに保存してあるJSONを読込む</title>
- <script type="text/javascript" src="jquery-1.5.1.min.js"></script>
- <script type="text/javascript" src="knockout-2.1.0beta.js"></script>
- <script type="text/javascript">
- function ViewModel() {
- var self = this;
- self.loadFile = ko.observable();
- self.localFile = function(a, b) {
- var fileList = b.target.files;
-
- var reader = new FileReader();
-
- // ファイル読み込み完了時
- reader.onload = function(){
- var r = "";
- try {
- // JSONに変換
- var obj = $.parseJSON(reader.result);
- r = "「$.parseJSON(reader.result)」を実行すればオブジェクトに変換してくれる";
- }
- catch (e) {
- // JSONではないファイルを読込んだとき
- r = "JSONじゃない";
- }
-
- a.loadFile(r);
- }
-
- // ファイルの読み込み
- reader.readAsText(fileList[0], "utf-8");
- // reader.readAsText(fileList[0]); // 文字コードの指定がなくても大丈夫かも。
- };
- }
- $(document).ready(function () {
- ko.applyBindings(new ViewModel());
- });
- </script>
- <style type="text/css"></style>
- </head>
- <body>
- <h1>ローカルに保存してあるJSONを読込む</h1>
- 適当なJSONファイルがなければ右のファイルを保存して試す「<a href="//tips.recatnap.info/sample/testdata/testdataB.txt">JSONファイルのサンプル</a>」
- <div style="padding:1em 0;">
- <input type="file" data-bind="event: {change: localFile}" />
- </div>
- ▼読込んだファイルを表示
- <div style="padding:0.5em;border:1px solid #ccc; background:#f5f5f5;" data-bind="text: loadFile"></div>
- <div style="font-size:10pt;text-align:right;margin-top:0.5em;">
- <a href="//tips.recatnap.info/" target="_top">PCスキルの小技・忘却防止メモ</a> -
- <a href="//tips.recatnap.info/wiki/" target="_top">PCスキルの小技・忘却防止メモのまとめ(wiki)</a>
- </div>
- <div style="font-size:10pt;text-align:center;margin-top:0.5em;padding:0.5em;border-top:1px solid #ccc;">
- Copyright © 2009 by PCスキルの小技・忘却防止メモ. All rights reserved.
- </div>
- </body>
- </html>