json을 변수에 로드하다
아주 간단한 일을 해야 하는데, 제가 보기에는 쉬운 방법이 없는 것 같아요.리모트 소스에서 JSON 데이터를 로드하여 jQuery를 사용하여 글로벌 Javascript 변수에 저장하기만 하면 됩니다.제가 가진 건 다음과 같습니다.
var my_json;
$.getJSON(my_url, function(json) {
var my_json = json;
});
my_json 변수는 정의되지 않은 상태로 유지됩니다.나는 이것이 분명히 범위의 문제라고 생각한다.제가 보기엔 $.getJ가SON 메서드는 JSON을 반환해야 하지만 XMLHttpRequest 개체를 반환합니다.이렇게 하면:
request = $.getJSON(my_url);
my_json = request.responseText.evalJSON();
readystate == 4가 될 때까지 responseetext는 null로 유지되기 때문에 작동하지 않습니다.응답 텍스트는 정상적으로 실행되므로 콜백 함수를 사용하여 반환해야 할 것 같습니다.
이렇게 어려울 리가 없어!그렇죠?
이것으로 끝입니다.
var json = (function () {
var json = null;
$.ajax({
'async': false,
'global': false,
'url': my_url,
'dataType': "json",
'success': function (data) {
json = data;
}
});
return json;
})();
가장 큰 문제는 이다.$.getJSON
비동기적으로 실행되기 때문에 Javascript가 실행되기도 전에 호출하는 식을 지나갑니다.success
콜백이 기동하기 때문에 변수가 데이터를 캡처하는 것은 보증되지 않습니다.
특히,'async': false
옵션을 지정합니다.매뉴얼에는 다음과 같이 기재되어 있습니다.
기본적으로는 모든 요청이 비동기식으로 전송됩니다(즉, 기본적으로는 true로 설정됩니다).동기 요청이 필요한 경우 이 옵션을 false로 설정하십시오.동기요구는 일시적으로 브라우저를 잠그고 요청이 활성화되어 있는 동안 모든 액션이 비활성화될 수 있습니다.
코드 비트는 다음과 같습니다.
var my_json;
$.getJSON(my_url, function(json) {
my_json = json;
});
<input class="pull-right" id="currSpecID" name="currSpecID" value="">
$.get("http://localhost:8080/HIS_API/rest/MriSpecimen/getMaxSpecimenID", function(data, status){
alert("Data: " + data + "\nStatus: " + status);
$("#currSpecID").val(data);
});
var itens = null;
$.getJSON("yourfile.json", function(data) {
itens = data;
itens.forEach(function(item) {
console.log(item);
});
});
console.log(itens);
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
</head>
<body>
</body>
</html>
- JSON 파일을 javascript 변수에 외부로 가져옵니다.
- 이 sample_data에는 JSON 파일의 값이 포함됩니다.
var sample_data = '';
$.getJSON("sample.json", function (data) {
sample_data = data;
$.each(data, function (key, value) {
console.log(sample_data);
});
});
언급URL : https://stackoverflow.com/questions/2177548/load-json-into-variable
'source' 카테고리의 다른 글
Angular에서 배열 내의 객체를 검색해야 합니다. (0) | 2023.03.28 |
---|---|
angularjs를 사용하여 차트 생성 (0) | 2023.03.28 |
Express에서 요청 본문을 json이 아닌 일반 텍스트로 강제 해석하려면 어떻게 해야 합니까? (0) | 2023.03.28 |
JavaScript:JSONP를 작성하려면 어떻게 해야 하나요? (0) | 2023.03.28 |
WordPress WXR 사양 (0) | 2023.03.28 |