jQuery.getJSON 및 jQuery.parseJSON return [객체]?
편집: 저는 이 질문으로 "유명한 질문" 배지를 받았습니다.그래서 저는 이 질문으로 돌아가서 저에게 무슨 일이 일어났는지 바로 맨 위에 붙여놓아야겠다고 생각했어요.검색하는 사람들이 바로 답을 얻을 수 있도록 말이죠.
기본적으로는 JSON은 처음이었고, JSON은 (분명히) 모든 것이 들어있기 때문에 오브젝트입니다!그래서 JSON 데이터를 문자열로 줄 수 있을 거라고 기대하면서 "Javascript, 이 JSON 데이터로 경고를 띄워줘"라고 생각했습니다.하지만 javascript는 그렇게 하지 않기 때문에 (좋아요!) "여보세요, [객체]는 이렇게 표시해요."
가 할 수 건 alert(obj.DATA[0][1])
그 부분을 보여 줬을 거예요
가 정말 것은 JSON 되고 있는지 이었는데, 데이터로 확인할 수 .JSON.stringify
.
어쨌든, 정기적으로 예정된 질문으로 돌아가겠습니다!
Ajax 콜을 사용하여 JSON 데이터를 가져오려고 하는데 jQuery가 JSON을 좋아하지 않는 것 같습니다.
예를 들어 다음과 같습니다.
function init2() {
alert("inside init2");
jQuery.ajax({
url: "/Mobile_ReportingChain.cfm",
type: "POST",
async: false,
success: function (data) {
alert(data);
var obj = jQuery.parseJSON(data);
alert(obj);
}
});
}
경고(데이터)에서 다음과 같이 수신됩니다.
{"COLUMNS":["MFIRST_NAME","MLAST_NAME","MMDDL_NAME","MEMPLY_ID","MAIM_NBR","EMPLY_ID"],
"DATA":[
["FNAME1 ","LNAME1 ","MI1 ","000-14-7189","026-0010","000-62-7276"]
,["FNAME2 ","LNAME2 ","MI2 ","000-01-2302","101-1850","000-14-7189"]
,["FNAME3 ","LNAME3 ","MI3 ","000-91-3619","102-1000","000-01-2302"]
,["FNAME4 ","LNAME4 ","MI4 ","000-25-9687","102-1000","000-91-3619"]
]}
JSONLint가 유효한 JSON이라고 합니다.alert(obj)는 다음과 같은 정보를 제공합니다.
[object Object]
, 「」의dataType: "json"
★★★★★★★★★★★★★★★★★」"text json"
만 하다[object Object]
alert(data)
.
이걸 꼭 알아내고 싶은데, 왜 이런 짓을 하는지 아는 사람 있나요?jQuery는 처음이라서 각 열의 배열을 얻는 것이 목표입니다.같은 코드를 사용하고 있는 것이, 다른 페이지에서도 동작하고 있기 때문에, 가장 신경이 쓰입니다.
이 함수는 텍스트 문자열만 표시할 수 있습니다.유일한 매개 변수로서 문자열 또는 개체를 사용합니다.그러나 개체는 표시할 수 있는 문자열로 변환됩니다.
통해 할 때 jQuery는 JSON을 합니다.$.ajax()
JSON의 JavaScript를 사용합니다.의 ★★★★★★★★★★★★★★★★★.data
JSON의 JavaScript입니다.
★★alert()
문자열만 할 수 하려고 할 에만 표시됩니다.data
object,object로 됩니다.은 JavaScript이다.[object Object]
debug-purpose를 사용할 수 .console.log(data)
도구의 할 수 .그런 다음 브라우저 개발자 도구의 콘솔을 통해 개체와 개체 내용을 검사할 수 있습니다.
function init2() {
jQuery.ajax({
url: "/Mobile_ReportingChain.cfm",
type: "POST",
dataType: "json",
async: false,
success: function (data) {
console.log(data);
}
});
}
어떤 이유로든 여전히 JSON 데이터에 경고하고 싶은 경우 다음 명령을 실행해야 합니다.data
오브젝트를 JSON 문자열로 되돌립니다.그러기 위해서는, 다음을 사용할 수 있습니다.
alert(JSON.stringify(data));
끈이 필요하다
var obj = $.parseJSON(JSON.stringify(data));
그 오브젝트를 에 송신해 보다console.log
. 내용물이 더 선명하게 표시됩니다.
또, 넣어주세요.dataType: 'json'
제거하다parseJSON
다 똑같으니까
원래 이렇게 하는 거야JSON이 javascript 객체가 됩니다.그런 다음 해당 개체를 일반 Javascript 개체로 조작할 수 있습니다.
data.COLUMNS
예를 들어 어레이를 반환해야 합니다.
[object Object]
javascript 객체의 문자열 표현입니다.
개체의 속성에 액세스해 보십시오.
alert(data.COLUMNS[0]);
jQuery.parseJSON
json 문자열을 json 개체로 변환하여 alert(obj)에 표시됩니다.[object Object]
물건이기 때문에.
뭘 보고 싶다면obj
포함 후 사용console.log(obj)
콘솔 로그 메시지를 확인합니다.
$.getJSON( "UI/entidades.json.php", function(data){
result = JSON.stringify(data);
alert(result)
console.log(result)
})
(당황한 문제인 건 알지만 조금만 참아주세요.애초에 왜 이런 문제가 생겼는지 설명할 수 있도록 말이다.)MySQL 테이블에서 레코드를 삭제한 공백을 메우고 싶었습니다(기본 키는 자동 증가).그래서 내 아이디 사이에 삭제된 레코드에 키가 없어졌을 때 말이야잃어버린 열쇠를 보여줄 수 있는 방법을 찾아봤어요그래서 루프를 통해 어레이를 생성한 코드를 만들고 존재하는 키를 삭제하여 에코가 어레이를 지원했습니다(물론 json_encode는 어레이를 지원).하지만 놀랍게도 제가 무엇을 하든 결국엔 항상 [객체]를 갖게 되었습니다.그것이 문제였던 것이 나를 많이 당황하게 했다.
솔루션:어레이를 재정비하고 있을 뿐인데 문제는 다 해결됐어요.
아래에 간단한 예를 제시하겠습니다.
<!DOCTYPE html>
<html>
<head>
<script src="../js/jquery/jquery3.x/jquery-3.3.1.min.js"></script>
<title></title>
<script type="text/javascript">
$(function () {
$('#generate').click(function () {
$.get('tmp2.php?tab=1', function (data) {
var retStr = '<table>';
var par = $.parseJSON(data);
$(par).each(function () {
retStr += '<tr><td>' + this + '</td></tr>';
});
retStr += '</table>';
$('#res').html(retStr);
});
});
});
</script>
</head>
<body>
<input type="button" value="generate" id="generate" />
<div id="res"></div>
</body>
</html>
그리고 컨트롤러는
<?php
if (!empty($_GET['tab'])) {
$ids = array();
for ($i = 0; $i < 50; $i++)
$ids[] = $i;
for ($i = 0; $i < 50; $i = $i + 2)
unset($ids[$i]);
// echo json_encode($ids); // this will generate [object Object]
$res = array();
foreach ($ids as $key => $value) {
$res[] = $value;
}
echo json_encode($res);
exit();
}
?>
언급URL : https://stackoverflow.com/questions/9218900/jquery-getjson-and-jquery-parsejson-return-object-object
'programing' 카테고리의 다른 글
MongoDB - 여러 $or 연산 (0) | 2023.03.13 |
---|---|
react.js의 인스턴스 v 상태 변수 (0) | 2023.03.13 |
그래들 및 스프링 부츠와 함께 롬복 사용 (0) | 2023.03.13 |
플라스크에서 양식 데이터를 얻는 방법은? (0) | 2023.03.13 |
Angular.js vs 녹아웃.js vs Backbone.js (0) | 2023.03.13 |