2017-11-21 20 views
0

私はかなり長い間この問題に取り組んできました。javascriptオブジェクトへのアクセス

私は、次を使用して配列を定義しています:

let newJsonObject = { 
    "billing_name": document.getElementsByName("order[billing_name]")[0].value, 
    "email": document.getElementsByName("order[email]")[0].value, 
    }; 

私は記憶装置からデータを取得し、parsedJsonという名前の変数に保管し、その後、console.log操作次の三つの操作を行います。

console.log(parsedJson); 
    console.log(parsedJson.billing_name); 
    console.log(parsedJson["billing_name"]); 

最初に、次のオブジェクトを返します。

parameters: 
{"billing_name": "123", "email": "123"} 

しかし、コンソールにログインした次の2つはundefinedです。

私はまた、キーは引用を持っていないと、オブジェクトを作成しようとしましたが、私はまだオブジェクトが定義されている場合、ログはnullを返している理由私は理解していない未定義

を取得しています。誰にも何か提案はありますか?

EDIT:ここに 私はデータを格納しています方法です。ここで

chrome.storage.sync.set({"parameters": JSON.stringify(newJsonObject)}); 

が、私はそれをアクセスしていますがどのようである:

chrome.storage.sync.get("parameters", params => { 
    if(params === null){ 
     //Nothing is even set, simply return 
     return; 
    }else{ 
     //Actually data saved in params 
     let parsedJson = params; 
     console.log(parsedJson); 
     console.log(parsedJson.parameters.billing_name); 
     console.log(parsedJson["billing_name"]); 

Here is a link to what is displayed in console

+0

あなたはこの 'console.log(parsedJson.parameters);を実行することで何を得ているのか分かりますか? –

答えて

0

使用JSON.parseはにあなたのJSON文字列に変換オブジェクト

はこの

console.log(JSON.parse(parsedJson.parameters).billing_name); 
+0

私がやっていることは、newJsonObject変数を文字列化し、それを記憶装置に入れて、オブジェクトとして出てくる。 JSON.parseを試すと、予期しないトークンoというエラーが表示されます。 – Jimmy

+0

私の更新された回答を試してください –

+0

これは私のために働いた!私はあなたがchrome.storage.syncからオブジェクトを引っ張ったときに、そのオブジェクトをオブジェクトに添付してオブジェクトとして返していると思います。ありがとう、私はまた、私は将来的に私の変数をより良い名前にする必要がありますね! – Jimmy

0

はこれを試してみてくださいしてみてください:

var test = JSON.parse(parsedJson.parameters); 
console.log(test.billing_name); 

これは動作します。

+0

まだ私のために未定義を返します。 – Jimmy

+0

@Jimmyの新しい答えが動作します – ravi

+0

あなたの権利!助けてくれてありがとう、残念なことに、私はArunのポストを早く見たので、私は彼の答えを受け入れた。それにもかかわらず、私はあなたの援助に感謝します。 – Jimmy

関連する問題