함수를 json으로 전달하고 실행
함수를 json 문자열로 전달(JSON.stringify 변환)하여 다른 함수로 전송하고 json을 해석하여 json에 있던 함수를 실행할 수 있는 방법이 있습니까?jquery와 javascript를 사용하고 있습니다.
네, 가능합니다.그것을 할 수 있는 방법은 아주 많다.
또한 http://javascript.about.com/library/bleval.htm에서 지적한 바와 같이 "악" 평가 기능을 사용할 필요가 없습니다(왜 피해야 하는지 야후글을 사용하세요). http://javascript.about.com/library/bleval.htm
var tmpFunc = new Function(codeToRun);
tmpFunc();
어느 단계에서든 JSON이었는지는 무관해야 한다.
예, 함수를 문자열로 변환할 수 있습니다.toString()방법.
함수를 문자열로 변환하고 함수로 되돌리는 예를 다음에 나타냅니다.
var myfunc = function () {
alert('It works!');
}
var as_string = myfunc.toString();
as_string = as_string.replace('It works', 'It really works');
var as_func = eval('(' + as_string + ')');
as_func();
여기 작업 예가 있습니다.
기본적으로 이런 일은 조심해야 합니다.기존의 javascript 함수를 문자열로 변환하여 평가하면 함수 재클라레이션 문제가 발생할 수 있습니다.단순히 서버에서 함수 문자열을 가져와서 실행하고 싶을 경우 jsfiddle에서 했던 것처럼 실행할 수 있습니다.
자바스크립트
var myFunc = "function test() {alert('test');}";
$(document).ready(function() {
var data = new Object();
data.func = myFunc;
var jsonVal = $.toJSON(data);
var newObj = $.evalJSON(jsonVal);
eval(newObj.func);
test();
});
JSONfn 플러그인을 확인합니다.
http://www.eslinstructor.net/jsonfn/
당신이 원하는 대로 할 수 있어요
- Vadim
JSONfn의 포크를 만들었습니다.이 포크는 오브젝트와 그 프로토타입을 문자열화하고 해석할 수 있습니다.내 기본 테스트에서는 잘 작동했다.
https://github.com/cgarciae/jsonfn
JSON 파일의 함수로 작업할 때 JavaScript call() 함수를 사용하면 도움이 됩니다.
var returnData = theJsonData.theFunction.call();
console.log(returnData); // prints any return data
그게 들르는 사람에게 도움이 됐으면 좋겠어!
안 돼, 이러면 안 돼함수를 JSON 직렬화할 수 없습니다.오브젝트를 JSON으로 변환하는 대신 JSON.stringify를 호출하지 않고 다른 함수에 직접 전달할 수 있습니다.
언급URL : https://stackoverflow.com/questions/3946958/pass-function-in-json-and-execute
'programing' 카테고리의 다른 글
| JSON 개체에서 요소 제거 (0) | 2023.03.13 |
|---|---|
| 웹 팩의 css로 인해 Mocha 테스트에 실패했습니다. (0) | 2023.03.13 |
| AngularJS에서 지시문을 작성할 때 새 스코프, 새 하위 스코프 또는 새 격리 스코프가 필요하지 않은지 어떻게 결정합니까? (0) | 2023.03.13 |
| Python 오류: TypeError: 'Timestamp' 형식의 개체가 JSON 직렬화 가능이 아닙니다. (0) | 2023.03.13 |
| 스프링 부트마다 1개의 @Configuration 클래스를 덮어씁니다@Test (0) | 2023.03.13 |