2017-03-21 5 views
3

にアクセスする私はJSON-オブジェクトを持っていますか月間の次のようにJSON整数要素

入力は、私は特定の年にアクセスするにはどうすればよい正確 customerSend、customerReceived、totalSendAllCustomers、totalReceivedAllCustomers

var emailObj = { 
       "kundenNummer":17889, 
       "jahre": 
       { 
        2017:{ 
         "Januar":[15,30,75,125], 
         "Februar":[17,32,77,127], 
         "März":[19,34,79,129], 
        }, 
        2018:{ 
         "Januar":[28,12,66,198], 
         "Oktober":[40,4,40,5], 
        } 
       } 
     } 

のですか? は、私はすでに、このようにそれを試してみました:私もこれを行うためのいくつかの他の方法を試してみましたが、私はすでにそれらを削除

var keysYears = Object.keys(emailObj.jahre); 
     var currentSelectedYear = keysYears[0]; 

     var keysMonth = Object.keys(emailObj.jahre[currentSelectedYear]); 
     var currentSelectedMonth = keysMonth[0]; 

     document.write(emailObj.jahre[currentSelectedYear].2017[0]); 

2017年または2018年のデータへのアクセス方法を教えてください。 私はそれらを文字列に変換することができることを知っていますが、私もこのようにすることができるかどうかを知りたいと思います。

+0

は 'emailObj.jahre [ '2017']を実行しますJanuar [0]' – choz

答えて

4

あなたは自分の名前で、あなたのオブジェクトemailObjのプロパティを呼び出すことができます。あなたの財産の名前が多数あるので

どちらのドット表記

emailObj.kundenNummer 

または括弧表記によって

emailObj["kundenNummer"] 

でドット表記法は、あなたのケースでは動作しません。その後、keyはあなたが整数を使用している場合でも、それは文字列に変換されます、常に文字列で、JavaScriptのオブジェクトで

emailObj.jahre["2017"]

var emailObj = { 
 
    "kundenNummer": 17889, 
 
    "jahre": { 
 
    "2017": { 
 
     "Januar": [15, 30, 75, 125], 
 
     "Februar": [17, 32, 77, 127], 
 
     "März": [19, 34, 79, 129], 
 
    }, 
 
    "2018": { 
 
     "Januar": [28, 12, 66, 198], 
 
     "Oktober": [40, 4, 40, 5], 
 
    } 
 
    } 
 
}; 
 

 
let year = "2017"; 
 
let month = "Januar"; 
 

 
console.log(emailObj.jahre[year][month]);

+0

おかげで、これは私の良い明確化を行いました。ドットを使用するか、かっこを使用するかを指定します。 – BotMaster3000

+0

それはもちろん、問題を解決しました。 – BotMaster3000

1

bracketの表記を使用する必要があります。

document.write(emailObj.jahre[currentSelectedYear][currentSelectedMonth][0]); 

var emailObj = { 
 
       "kundenNummer":17889, 
 
       "jahre": 
 
       { 
 
        2017:{ 
 
         "Januar":[15,30,75,125], 
 
         "Februar":[17,32,77,127], 
 
         "März":[19,34,79,129], 
 
        }, 
 
        2018:{ 
 
         "Januar":[28,12,66,198], 
 
         "Oktober":[40,4,40,5], 
 
        } 
 
       } 
 
     } 
 
var keysYears = Object.keys(emailObj.jahre); 
 
var currentSelectedYear = keysYears[0]; 
 
var keysMonth = Object.keys(emailObj.jahre[currentSelectedYear]); 
 
var currentSelectedMonth = keysMonth[0]; 
 
document.write(emailObj.jahre[currentSelectedYear][currentSelectedMonth][0]);

0

を使用する必要があります。ご例えば

obj.key1 
obj['key1'] 

emailObj.jahre['2017'] 
emailObj['jahre']['2017'] 

は、オブジェクトのキーをループに構築ループfor inを使用します。

var emailObj = { 
    "kundenNummer":17889, 
    "jahre": { 
     2017:{ 
      "Januar":[15,30,75,125], 
      "Februar":[17,32,77,127], 
      "März":[19,34,79,129], 
     }, 
     2018:{ 
      "Januar":[28,12,66,198], 
      "Oktober":[40,4,40,5], 
     } 
    } 
} 

for (key in emailObj.jahre) { 
    console.log(emailObj.jahre[key]) //Here key will be '2017', '2018' etc 
} 
特定のキーにアクセスするには

obj = { 
    key1: //contents 
    key2: //contents 
} 

0

あなたはca JavaScriptで名前に数字を含むドット表記のプロパティではアクセスできません。代わりに、ブラケット表記の使用を検討する必要があります。

例:

emailObj.jahre['2017']

var emailObj = { 
 
    "kundenNummer": 17889, 
 
    "jahre": { 
 
    2017: { 
 
     "Januar": [15, 30, 75, 125], 
 
     "Februar": [17, 32, 77, 127], 
 
     "März": [19, 34, 79, 129], 
 
    }, 
 
    2018: { 
 
     "Januar": [28, 12, 66, 198], 
 
     "Oktober": [40, 4, 40, 5], 
 
    } 
 
    } 
 
}; 
 
console.log(emailObj['jahre']['2017']); 
 
console.log(emailObj.jahre['2017']);

関連する問題