2012-07-24 7 views
1
내가 jQuery를 사용하여이 분할 수있는 방법을 알고 싶습니다

... 분할 문자열 [] ... 다른 JSON은

"{"answer":["q1001-a2","q1002-a2","q1003-a2","q1004-a2","q1005-a2","q1006-a2"]}" 

그래서 내가 다음 JSON을 할 수 있도록하는

{ 
    "d": [ 
     { 
      "question": 1001, 
      "answer": "a2" 
     }, 
     { 
      "question": 1002, 
      "answer": "a2" 
     } 
     ] 
} 

감사합니다. 이 도움이 될

+0

상세히 설명한다/ko/JavaScript/Reference/Global_Objects/String/split) 함수를 호출합니다. 너 뭐 해봤 니? –

답변

1

루프 answer을 입력하고 -으로 요소를 분할하고 새 요소를 만든 다음 d에 푸시합니다.

The live DEMO

var ret = {d: []}; 
// if you have json string, then you could jQuery.parseJSON to parse it 
var obj = {"answer":["q1001-a2","q1002-a2","q1003-a2","q1004-a2","q1005-a2","q1006-a2"]}; 
var answers = obj.answer, tmp, i; 
for (i = 0; i < answers.length; i++) { 
    tmp = answers[i].split('-'); 
    ret.d.push({"question": tmp[0], "answer": tmp[1]}); 
} 
.

+0

JSON에 약간의 변화를 주셔서 죄송합니다. 어떻게 해결할 수 있을까요? ""{ "answer": "q1001-Blend", "q1002-lowlands", "q1003-two", "q1004-Ireland ","q1005-Bushmills ","q1006-Suntory "]}" " ' – thatuxguy

+0

@thatuxguy 그 점이 어떤 차이가 있습니까? – xdazz

+0

잡히지 않는 타입 오류가 계속 발생합니다 : 정의되지 않은 속성 '길이'를 읽을 수 없습니다 – thatuxguy

0

http://api.jquery.com/jQuery.parseJSON/

추측. '-'

"{"answer":["q1001-a2","q1002-a2","q1003-a2","q1004-a2","q1005-a2","q1006-a2"]}" 

'{"answer":["q1001-a2","q1002-a2","q1003-a2","q1004-a2","q1005-a2","q1006-a2"]}' 

당신은 'Q1001'과 교체를 시도 할 수 있습니다 같아야합니다 JSON의 STANDART 일치합니다 문자열 정규식으로하지만, 보편적 인 해결책이 아니다

0

사용 JQuery와 같은 아래의 포맷 기능 :

var string = "{\"key\":\"val}{ue\"}{'key':'val}{ue'}{ \"asdf\" : 500 }"; 
var result = string.match(/('.*?')|(".*?")|(\d+)|({)|(:)|(})/g); 
var newstring = ""; 
for (var i in result) { 
    var next = parseInt(i) + 1; 
    if (next <= result.length) { 
     if (result[i] == "}" && result[next] == "{") { 
     newstring += "},"; 
     } 
     else { 
     newstring += result[i]; 
    } 
} 

이 코드 https://developer.mozilla.org합니다 ([분할]를 사용하는 제안 jQuery - $.each loop through json code 페이지