4

わかりましたので、js を使用して Web オペレーティング システムをプログラミングしています。ファイルシステムに JSON を使用しています。JSONに関するチュートリアルをオンラインで約1週間探していますが、WebページからのJSONファイルの書き込みに関するものは何も見つかりません. 既存のオブジェクトを変更するのではなく、ファイルに新しいオブジェクトを作成する必要があります。これまでの私のコードは次のとおりです。

{"/": {
            "Users/": {
                "Guest/": {
                    "bla.txt": {
                        "content": 
                            "This is a test text file"
                    }

                },
                "Admin/": {
                    "html.html": {
                        "content": 
                            "yo"

                    } 
                }
            },
            "bin/": {
                "ls": {
                        "man": "Lists the contents of a directory a files<br/>Usage: ls"
                },
                "cd": {
                    "man": "Changes your directory<br/>Usage: cd <directory>"
                },
                "fun": {
                    "man": "outputs a word an amount of times<br/>Usage: fun <word> <times>"
                },
                "help": {
                    "man": "shows a list of commands<br/>Usage: help"
                },
                "clear": {
                    "man": "Clears the terminal<br/>Usage: clear"
                },
                "cat": {
                    "man": "prints content of a file<br/>Usage: cat <filename>"
                }
            },
            "usr/": {
                "bin/": {

                }, 
                "dev/": {

                }   
            }
        }}
4

2 に答える 2

4

より良い解決策は、JSON を文字列化し、base64 エンコーディングでエンコードしてから、このファイルを保存できるサーバー側スクリプト (たとえば、PHP ページ) に送信することだと思います。見る:

var json = JSON.stringify(myJson);
var encoded = btoa(json);

送信に ajax を使用できます。

var xhr = new XMLHttpRequest();
xhr.open('POST','myServerPage.php',true);
xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
xhr.send('json=' + encoded);

そしてサーバー側では:

$decoded = base64_decode($_POST['json'])
$jsonFile = fopen('myJson.json','w+');
fwrite($jsonFile,$decoded);
fclose($jsonFile);
于 2013-06-10T15:21:50.760 に答える