JSON을 통한 jQuery loop over JSON 성공으로 인한 결과?
jQuery AJAX 성공 콜백에서 개체의 결과를 루프합니다.이것은 Firebug에서의 응답의 예를 나타냅니다.
[
{"TEST1":45,"TEST2":23,"TEST3":"DATA1"},
{"TEST1":46,"TEST2":24,"TEST3":"DATA2"},
{"TEST1":47,"TEST2":25,"TEST3":"DATA3"}
]
각 요소에 액세스할 수 있도록 결과를 루프하려면 어떻게 해야 합니까?아래와 같은 것을 시도해 보았습니다만, 효과가 없는 것 같습니다.
jQuery.each(data, function(index, itemData) {
// itemData.TEST1
// itemData.TEST2
// itemData.TEST3
});
외부 루프를 제거하고 교체할 수 있습니다.this
와 함께data.data
:
$.each(data.data, function(k, v) {
/// do stuff
});
아슬아슬했어:
$.each(data, function() {
$.each(this, function(k, v) {
/// do stuff
});
});
오브젝트/맵 배열이 있기 때문에 외부 루프가 그 위에 반복됩니다.내부 루프는 각 객체 요소의 속성에서 반복됩니다.
$.getJSON('/your/script.php', function(data) {
$.each(data, function(index) {
alert(data[index].TEST1);
alert(data[index].TEST2);
});
});
이것은 사실 ifesdjeen의 대답을 다시 쓴 것일 뿐이지만, 나는 그것이 사람들에게 도움이 될 것이라고 생각했다.
Fire Fox를 사용하는 경우 콘솔을 열고(F12 키를 사용) 다음을 시도해 보십시오.
var a = [
{"TEST1":45,"TEST2":23,"TEST3":"DATA1"},
{"TEST1":46,"TEST2":24,"TEST3":"DATA2"},
{"TEST1":47,"TEST2":25,"TEST3":"DATA3"}
];
$.each (a, function (bb) {
console.log (bb);
console.log (a[bb]);
console.log (a[bb].TEST1);
});
도움이 되었으면 좋겠다
이 문제를 안고 있는 다른 사용자의 경우, Ajax 콜이 반환된 데이터를 텍스트로 해석하고 있기 때문에(즉, 아직 JSON 개체가 아님) 작동하지 않을 수 있습니다.
parseJ를 사용하여 수동으로 JSON 개체로 변환할 수 있습니다.SON 명령 또는 단순히 dataType: 'json' 속성을 ajax 호출에 추가합니다.
jQuery.ajax({
type: 'POST',
url: '<?php echo admin_url('admin-ajax.php'); ?>',
data: data,
dataType: 'json', // ** ensure you add this line **
success: function(data) {
jQuery.each(data, function(index, item) {
//now you can access properties using dot notation
});
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("some error");
}
});
다른 어레이와 마찬가지로 json 어레이에 액세스합니다.
for(var i =0;i < itemData.length-1;i++)
{
var item = itemData[i];
alert(item.Test1 + item.Test2 + item.Test3);
}
모든 데이터 값을 쉽게 표시하기 위해 다음과 같이 생각했습니다.
var dataItems = "";
$.each(data, function (index, itemData) {
dataItems += index + ": " + itemData + "\n";
});
console.log(dataItems);
jQuery.map 함수를 사용해 보세요.지도에서 잘 동작합니다.
var mapArray = {
"lastName": "Last Name cannot be null!",
"email": "Email cannot be null!",
"firstName": "First Name cannot be null!"
};
$.map(mapArray, function(val, key) {
alert("Value is :" + val);
alert("key is :" + key);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
경고를 원하지 않는 경우, 즉 html을 원하는 경우 이 작업을 수행합니다.
...
$.each(data, function(index) {
$("#pr_result").append(data[index].dbcolumn);
});
...
메모: "html"이 아닌 "append"를 사용합니다.그렇지 않으면 마지막 결과는 html 뷰에 표시됩니다.
html 코드는 다음과 같습니다.
...
<div id="pr_result"></div>
...
html로 렌더링하기 전에 jquery의 div를 스타일링(클래스 추가)할 수도 있습니다.
foreach에는 .map을 사용합니다.예를들면
success: function(data) {
let dataItems = JSON.parse(data)
dataItems = dataItems.map((item) => {
return $(`<article>
<h2>${item.post_title}</h2>
<p>${item.post_excerpt}</p>
</article>`)
})
},
다음과 같이 JQuery ajax 호출 함수의 짧은 메서드를 사용하는 경우 반환된 데이터를 json 개체로 해석하여 루프 스루할 수 있어야 합니다.
$.get('url', function(data, statusText, xheader){
// your code within the success callback
var data = $.parseJSON(data);
$.each(data, function(i){
console.log(data[i]);
})
})
배열에서 값을 찾기 위한 ES2015 화살표 함수를 좋아합니다.
const result = data.find(x=> x.TEST1 === '46');
Array.protype.find()는 이쪽에서 확인하세요.
$each
동작합니다.다른 옵션은 어레이 결과에 대한 jQuery Ajax 콜백입니다.
function displayResultForLog(result) {
if (result.hasOwnProperty("d")) {
result = result.d
}
if (result !== undefined && result != null) {
if (result.hasOwnProperty('length')) {
if (result.length >= 1) {
for (i = 0; i < result.length; i++) {
var sentDate = result[i];
}
} else {
$(requiredTable).append('Length is 0');
}
} else {
$(requiredTable).append('Length is not available.');
}
} else {
$(requiredTable).append('Result is null.');
}
}
언급URL : https://stackoverflow.com/questions/733314/jquery-loop-over-json-result-from-ajax-success
'programing' 카테고리의 다른 글
Sublime Text - JSON 포맷터 바로가기 (0) | 2023.03.28 |
---|---|
React의 HashRouter와 BrowserRouter의 차이점은 무엇입니까? (0) | 2023.03.28 |
Larabel이 JSON REST API의 커스텀에러를 반환하도록 하려면 어떻게 해야 합니까? (0) | 2023.03.28 |
대응 - TypeScript vs Flow vs. (0) | 2023.03.28 |
오버플로우 y 스크롤바 스타일을 변경하는 방법 (0) | 2023.03.28 |