기록, js 에서 문자열 을 json 대상 으로 바 꾸 는 흔 한 세 가지 방법
2084 단어 JS 사례
var data='[{"name":"xiao","age":12},{"name":"xiao","age":12}]';
//
var json1 = JSON.parse(data);
dy(":"+json1[0].name);
//
var json2 = eval("(" + data+ ")");
dy(json2[0].name);
//
var json3 = (new Function("return " + data))();
dy(json3[0].name);
var str = '{' name ':' 소명 ',' age ': 18}';
문자열 을 json 대상 으로 변환: 1. var json = JSON. parse (str); /데이터 형식 이 엄격 해 야 하 며, 작은 따옴표 (') 로 두 따옴표 (') 를 설정 해 야 합 니 다.주의, 고정 쓰기, 대부분의 데 이 터 를 변환 할 수 있 습 니 다. var json = (new Function ("return" + str) (); /고정 쓰기 (안에 return 이 없어 서 는 안 됩 니 다) 는 대부분의 데 이 터 를 변환 할 수 있 습 니 다.
eval () 의 반환 값 은 다음 과 같은 규칙 을 따 릅 니 다. 1. eval () 의 매개 변수 가 문자열 이 아니라면 eval () 은 매개 변 수 를 직접 되 돌려 줍 니 다.2. eval () 의 인자 가 문자열 이 라면 eval () 은 이 문자열 을 코드 로 해석 하여 실행 하고 마지막 줄 코드 가 실 행 된 결 과 를 되 돌려 줍 니 다.3. 문자열 이 합 법 적 인 코드 로 해석 되 지 않 으 면 eval () 은 SyntaxError 오 류 를 던 집 니 다.
다음 data 문자열 은 JSON. parse () 로 변환 할 수 없습니다. 다음 두 가지 var data = "[{'name': 'xiao', 'age': 12}, {'name': 'xiao', 'age': 12}]"; /방식 1 var obj = eval ("(" + data + ")");alert(obj.length);//2 / / 방식 2var jsonObj = (new Function ("return" + data) ();alert(jsonObj.length);//2
var str 1 = "{'name': '이 걸', 'age': '30'}"; /eval () 또는 new Function () 으로 만 전환 할 수 있 습 니 다.
자바 에서 정의 하 는 문자열 은 일반적으로 작은 따옴표 (') 세트 로 str =' {'name': '이 걸', 'age': '30'} '을 사용 하 는 것 에 익숙 합 니 다.response.getWriter().println(str);//프론트 페이지 로 보 내기
js 에서 ajax 프로그램 은 eval () 함수 로 / alert (xmlHttp. responseText) 를 변환 합 니 다. /수신 서버 측 String str = "{'name': '이 걸', 'age': '30'}";var obj = eval("("+xmlHttp.responseText+")"); alert(obj.name); alert(obj.age);
별일 없 으 니 자 료 를 좀 찾 아 작은 기록 으로 하 자.보 이 는 동료, 부족 한 점 은 너무 따 질 필요 가 없다.