私はこのJSのオブジェクトがあります( "コメント": "テキスト")をループJSオブジェクト
{
"data": {
"nid": [{
"cid": "32",
"uid": "780",
"comment": "text"
}]
},
"request_status": "found"
}
どのようにこれらの項目を通じてIループを取得することができますコメント値を?
私はこのJSのオブジェクトがあります( "コメント": "テキスト")をループJSオブジェクト
{
"data": {
"nid": [{
"cid": "32",
"uid": "780",
"comment": "text"
}]
},
"request_status": "found"
}
どのようにこれらの項目を通じてIループを取得することができますコメント値を?
実際にループする必要はありません。ただ、やる...
var obj = {"data":{"nid":[{"cid":"32","uid":"780","comment":"text"}]},"request_status":"found"};
var text = obj.data.nid[0].comment;
または複数が存在する場合、あなたはforEach
...
obj.data.nid.forEach(function(val,i) {
alert(val.comment);
});
や伝統的なfor
ループ...
for(var i = 0; i < obj.data.nid.length; i++) {
alert(obj.data.nid[i].comment);
}
または、配列を作成する場合は、を使用します...
var arr = obj.data.nid.map(function(val,i) {
return val.comment;
});
か、再度、伝統的なfor
ループ...
var arr = []
for(var i = 0; i < obj.data.nid.length; i++) {
arr.push(obj.data.nid[i].comment);
}
に感謝しますが、nidがnumberに変更された場合は、直接取得できますか? { "データ":{ "1222":[{ "CID": "32"、 "UID": "780"、 "コメント": "テキスト" }] }、 " request_status ":" found " } – Laky
@Laky:' obj.data.nid'を 'obj.data [1222]'に変更します。それとも、あなたはそれが違う数、あるいは複数の数字のセットかもしれないと言っていますか? –
ちょうどその特定のオブジェクトを参照する(または、使用しているすべてのオブジェクトが同じパターンに従っている場合している場合)、その後、あなただけの値を直接アクセスすることができます。
var theObj = {"data":{"nid":[{"cid":"32","uid":"780","comment":"text"}]},"request_status":"found"};
alert(theObj.data.nid[0].comment);
あなたが繰り返し何かをしたい場合は、おそらくこれを試してみてください。
var theObj = {"data":{"nid":[{"cid":"32","uid":"780","comment":"text"}]},"request_status":"found"};
for (var index = 0; index < theObj.data.nid.length; index++) {
var item = theObj.data.nid[index];
if (item.comment) {
alert(item.comment);
}
}
それとも、本当に繰り返し全体事行いたい場合:
window.searchObj = function(theObj) {
if (theObj.comment) {
alert(theObj.comment);
}
if (theObj instanceof Array) {
searchArray (theObj);
}
else if (theObj instanceof Object) {
for (var key in theObj) {
searchObj(theObj[key]);
}
}
};
window.searchArray = function(theArray) {
for (var index = 0; index < theArray.length; index++) {
var item = theArray[index];
searchObj(item);
}
};
var theObj = {"data":{"nid":[{"cid":"32","uid":"780","comment":"text"}]},"request_status":"found"};
searchObj(theObj);
を考える:
var obj = {
"data": {
"nid": [{
"cid": "32",
"uid": "780",
"comment": "text"
}]
},
"request_status": "found"
};
コメントを取得するための直接的な方法は次のとおりです。
obj["data"]["nid"][0]["comment"]
// or
obj.data.nid[0].comment
「ループ」するまで値を取得するための項目、私はループが意味をなさないか分からない。あなたはオブジェクトの構造を知らないかもしれないが、どこかに「コメント」フィールドがあることを知っていると言っていますか?
「NID」配列を有するだけで1つの項目でも - これは単なるサンプルでしたが、本当にあなたは、複数の値を持つ配列を持っているだろう場合のことができ、その配列をループ:
var nid = obj["data"]["nid"], // get a direct reference to the array to save
i; // repeating obj.data.nid everywhere
for (i=0; i < nid.length; i++) {
// do something with the comment in the current item
console.log(nid[i]["comment"]);
}
は、なぜあなたがしたいですかそれをループするには? 'object.data.nid [0] .comment' – JohnP