2017-03-23 16 views
0

私は現在、JSONでユーザー設定の保存が必要なプロジェクトを行っています。私は今、まともな時間を探していますが、解決策は見つけられません。たとえば、3つの変数user、permissions、serveridがあります。私はこれがうまくいくと思った。JavaScriptでのJSONファイルの作成と読み込み

tempObject = { 
    user: [] 
}; 

tempObject.user.push({perm:permissions, server:serverid}); 

次に、私は文字列化してJSONに変わります。ただし、出力は次のように出てきた:

{user[{perm:4, server:883}]} 

これには、さらに下のコードでは、私は、各ユーザーIDの権限を取得することができindivisualsのユーザーIDの下でパーマやサーバー変数をグループ化で私の必死の試みでした。しかし、あなたが見ることができるように、それはユーザー変数を出力していませんでした。ちょうどそれを配列に変更し、ユーザをlitteral文字列として受け取りました。

TL; DR要するに 私は、JSONファイルは、それがユーザーIDの下にパーマやサーバーIDを保存する場所に書き込むこと持つことができることを支援する必要があります。

答えて

2

ユーザーをオブジェクトにします。このため

user: [] 

:この変更

user: {} 

をしてから、このようなキー設定:セキュリティ上の理由から

user.perm = 4; 
user.server = 883; 
0

を、クライアント側のJavaScriptをへの書き込みを許可されていませんディスク。これはあなたがデータベースを必要とするように思えます。

localStorage、またはデータベースの代替としてCookieを利用することができます。

ユーザー配列をオブジェクトに変更する必要があると思います。その方法でuserIDの鍵となる可能性があります。例えば

var data = { 
    users: {} 
}; 

const userID = 1234; // or could be a string like 'john_doe' 
const userPermissions = { perm: 4, server: 883 }; 

// set the user's permissions 
data.users[userID] = userPermissions; 

// fetching user's permissions 
const userData = data.users[userID]; 
console.log('User ' + userID +' has perm = ' + userData.perm + ' and server = ' + userData.server); 

今すぐ保存し、ローカルストレージを使用して、このデータのロードが簡単です:

function saveData() { 
    localStorage.setItem('UserData', JSON.stringify(data)); 
} 

function loadData() { 
    data = JSON.parse(localStorage.getItem('UserData')); 
} 
関連する問題