2014-03-06 1 views
0

외부 프로그램을 호출하는 javascript 함수가 있는데 그 결과를 아래 예제와 같이 여러 값이있는 여러 행을 포함하는 객체에 넣어야합니다.프로그램 호출에서 반환 된 데이터로 자바 객체 채우기

$.get(programcall , function(data) {  
var dealers = {}; 
data = {0:{'name':'name1','address':'address1','phone':'phone1','miles':1.2},1:{'name':'name2','address':'address2','phone':'phone2','miles':2.2}}; 
dealers = data; 
}); 

"데이터"가 따옴표로 묶이지 않기 때문에이 테스트가 작동하지만 "데이터"의 내용이 호출 된 프로그램에서 반환되면 "딜러"의 텍스트 내용이됩니다.

개체로 저장된 값을 어떻게 얻을 수 있습니까?

호출 된 프로그램이 MINE이므로 필요하면 형식을 변경하여 작동하게 할 수 있습니다. 데이터는 자바 스크립트를 사용하여 처리하고 DIV를 채우기 위해 이름, 주소 등을 가진 고객 목록입니다.

+0

명성을 남기지 않는 것에 대한 사과, 나는 충분하지 않으며 Stackoverflow는 나를 허용하지 않을 것입니다. –

답변

1

문자열이 유효한 JSON 인 경우 기본 JSON.parse 함수를 사용하여 개체로 변환하십시오.

예를 들어

: 피려

data = JSON.parse('{"mything": 3}') 

한 가지 : JSON 키 이름을 큰 따옴표를 필요로하므로 {"mything": 3} 작동하지만 {'mything': 3}will not validate.

+0

신속한 답변을 보내 주셔서 감사합니다. JSON.parse()를 호출했을 때 스크립트가 중단되어 이유를 알 수 없습니다. 내 코드는 현재 다음과 같습니다. $ .get (programcall, function (data) { var dealer = {}; dealers = JSON.parse (data); }); 데이터는 다음과 같이 반환됩니다. "{0 : {"name ":"name1 ","address1 ","phone ":"phone1 ","miles ": 1.2}, 1 : {"name ":"name2 ","address ":"address2 ","phone ":"phone2 ","miles ": 2.2}}" " –

+0

@TonyPayne 그건 json이 아닙니다. '{ ""name ":"name1 ","address ":"address1 ","phone ":"phone1 ","miles ": 1.2}와 같은 정수형 키를 문자열 이스케이프해야합니다. "1": { "name": "name2", "address": "address2", "phone": "phone2", "miles": 2.2}} ' – turtlemonvh

+0

이 유효성 검사 도구는 서식을 가져 오는 데 유용 할 수 있습니다 http://jsonlint.com/ – turtlemonvh

1

외부 서버 호출이 문자열 콘텐츠를 데이터 개체로 반환하고 있습니다. 이 JSON 형식은 유효한 형식이지만 여전히 문자열입니다.

단순한 $ .get 대신 jQuery's getJSON function을 사용하고 싶습니다. 응답을 JSON 객체와 비슷한 것으로 변환하므로주의해야합니다.

$.getJSON(programcall, function(data) { 
    // data is now a JSON object not a string, if it's valid json from your server response 
+0

감사합니다. Matt. 그냥 $ _get() 대신 $ _getJSON() 사용했지만 스크립트를 중단합니다 (나는 FF로 방화범이 끌리는 사용하고 있습니다). 왜 그런지 모르지만 아래의 Turtlemonvh뿐 아니라 귀하의 제안을 모두 시도하십시오. –

관련 문제