2014-03-29 3 views
1

<script> - 영역 a a STRING의 내용을 읽었습니다. 내가 "진짜"JSON에 Conver 유럽하려면 다음과 같은 내용을받을 조작을 통해JSON 문자열 파싱에 실패했습니다.

$('script').each(function() { 
     if (this.innerHTML.indexOf("AF_initDataCallback({key: '12'")>-1) { 
      var complete=this.innerHTML; 
      var startJSON=complete.indexOf('['); 
      var endJSON=complete.lastIndexOf(']'); 
     // var ar=eval(complete.substring(startJSON,endJSON)); 
      var ar2=$.parseJSON(complete.substring(startJSON,endJSON)); 

     } 
    }); 

"[[[["23e29db10f09d296"] 
,["Friends",,"Your real friends, the ones you feel comfortable sharing private details with.",,,,,,,2,2,,"00000000",1,1,1] 
] 
,[["3d5354de09baf36e"] 
,["Family",,"Your close and extended family, with as many or as few in-laws as you want.",,,,,,,2,2,,"00000001",2,1,1] 
] 
,[["21f948f108db184f"] 
,["Techie",,"",,,,,,,2,2,,"00000002",0,1,1] 
] 
,[["7373617e08bbeac4"] 
,["funny",,,,,,,,,2,2,,"00000003",0,1,1] 
] 
,[["4ace516d8d62f107"] 
,["Job",,,,,,,,,2,2,,"00000004",0,1,1] 
] 
,[["5594b1f8d1f1e37"] 
,["Followers",,,,,,,,,2,2,,"00000005",0,1,1] 
] 
,[["2bc5e6a50e948a73"] 
,["Job: Nice",,"",,,,,,,2,2,,"00000006",0,1,1] 
] 
,[["397a6a970cade6e8"] 
,["rx8",,,,,,,,,2,2,,"00000007",0,1,1] 
] 
,[["13ea3c80821ad9c"] 
,["promi",,,,,,,,,2,2,,"00000008",0,1,1] 
] 
,[["588da2260e942271"] 
,["Firmen",,,,,,,,,2,2,,"00000009",0,1,1] 
] 
,[["337bb5990e4870e5"] 
,["News",,,,,,,,,2,2,,"0000000a",0,1,1] 
] 
,[["4856572c0e1de220"] 
,["Gaming",,,,,,,,,2,2,,"0000000b",0,1,1] 
] 
,[["3555f8f8bc5726f"] 
,["mine",,,,,,,,,2,2,,"0000000c",0,1,1] 
] 
,[["6a01451c89ca64ae"] 
,["Nette Leute",,"",,,,,,,2,2,,"0000000d",0,1,1] 
] 
,[["90ed4e98f5820f7"] 
,["Hamburg",,"",,,,,,,2,2,,"0000000e",0,1,1] 
] 
,[["56bac85c894170b8"] 
,["Job-Contacts",,"",,,,,,,2,2,,"0000000f",0,1,1] 
] 
,[["485ab93e8e81d66d"] 
,["Fussball",,"",,,,,,,2,2,,"00000010",0,1,1] 
] 
,[["5ec1bb9409bad931"] 
,["Journaille",,"",,,,,,,2,2,,"00000011",0,1,1] 
] 
,[["135ce0d189b1e545"] 
,["mal schauen",,,,,,,,,2,2,,"00000012",,1,1] 
] 
,[["1ecbecf28ec85202"] 
,["Lonely Circle",,"",,,,,,,2,2,,"00000013",0,1,1] 
] 
,[["38a246348c513a39"] 
,["ignore",,,,,,,,,2,2,,"00000014",0,1,1] 
] 
,[["2f9c4a3c0e1f43b9"] 
,["Vielschreiber",,"",,,,,,,2,2,,"00000015",0,1,1] 
] 
,[["7fd0532089537115"] 
,["Bombenbauer",,"",,,,,,,2,2,,"00000016",0,1,1] 
] 
,[["765e2a78e64b1a6"] 
,["Techsites",,"",,,,,,,2,2,,"00000017",0,1,1] 
] 
,[["598e823988cf077e"] 
,["OK",,"",,,,,,,2,2,,"00000018",0,1,1] 
] 
,[["3edae58f895c3933"] 
,["Star Trek",,,,,,,,,2,2,,"00000019",0,1,1] 
] 
,[["22ad725f89342264"] 
,["Deppen",,,,,,,,,2,2,,"0000001a",0,1,1] 
] 
,[["254c1dec0d1bf02a"] 
,["science",,,,,,,,,2,2,,"0000001b",0,1,1] 
] 
,[["2b4588aa898848a4"] 
,["Undeutsch",,,,,,,,,2,2,,"0000001c",0,1,1] 
] 
,[["300a8672084d875b"] 
,["eurpeans",,,,,,,,,2,2,,"0000001d",0,1,1] 
] 
,[["7de54f780f74eb6d"] 
,["Autoren",,,,,,,,,2,2,,"0000001e",0,1,1] 
] 
,[["152f86d208909412"] 
,["Unterhaltung",,,,,,,,,2,2,,"0000001f",0,0,1] 
] 
,[["6d96794b0f6ac25e"] 
,["Bookmarks",,"",,,,,,,2,2,,"00000020",0,1,1] 
] 
,[["76c46c5489053a6b"] 
,["Usertreffen",,,,,,,,,2,2,,"00000021",0,1,1] 
] 
,[["80d2af10e3778b1"] 
,["g+j",,,,,,,,,2,2,,"00000022",0,1,1] 
] 
,[["e2e37408d864f3f"] 
,["Ouya Follower",,,,,,,,,2,2,,"00000023",0,1,1] 
] 
,[["2916afdf8cbcf8e0"] 
,["Ingress DE",,"",,,,,,,2,2,,"00000024",0,1,1] 
] 
,[["74bca48bb5e9bf"] 
,["Ouya",,,,,,,,,2,2,,"00000025",0,1,1] 
] 
,[["63d74040084991b1"] 
,["Spam",,,,,,,,,2,2,,"00000026",0,1,1] 
] 
,[["6d0e7cf08bee08d8"] 
,["Geeks",,,,,,,,,2,2,,"00000027",0,1,1] 
] 
,[["1deb550f8d794be4"] 
,["janzneu",,,,,,,,,2,2,,"00000028",0,0,1] 
] 
,[["6c02104c094dd570"] 
,["urlaub",,,,,,,,,2,2,,"00000029",0,0,1] 
] 
,[["267736b60f3a46e7"] 
,["Heimat",,,,,,,,,2,2,,"0000002a",0,1,1] 
] 
,[["7a7fd8738eedd564"] 
,["Google",,,,,,,,,2,2,,"0000002b",0,0,1] 
] 
,[["3e6492e98907eda2"] 
,["Politik",,,,,,,,,2,2,,"0000002c",0,0,1] 
] 
,[["42f28c228ae071ac"] 
,["prio",,,,,,,,,2,2,,"0000002d",0,0,1] 
] 
,[["2c2fbd540de7df0f"] 
,["Optimizer",,,,,,,,,2,2,,"0000002e",0,1,1] 
] 
] 
" 

그래서 나는 이미 JSON처럼 "보이는"문자열을 수신하고 실제 JSON은 "이었다" 전에. 내가 $.parseJSON를 사용하여 실제 개체에이 변환 할 때

는하지만

Uncaught SyntaxError: Unexpected token ,

내가 전에 약간의 변환을하거나 주위 무언가를 포장해야합니까 오류를 얻을?

(업데이트) 내가 잡아하려는 FULL 스크립트 영역 :

<script>AF_initDataCallback({key: '12', isError: false , data:[[[["23e29db10f09d296"] 
,["Friends",,"Your real friends, the ones you feel comfortable sharing private details with.",,,,,,,2,2,,"00000000",1,1,1] 
] 
,[["3d5354de09baf36e"] 
,["Family",,"Your close and extended family, with as many or as few in-laws as you want.",,,,,,,2,2,,"00000001",2,1,1] 
] 
,[["21f948f108db184f"] 
,["Techie",,"",,,,,,,2,2,,"00000002",0,1,1] 
] 
,[["7373617e08bbeac4"] 
,["funny",,,,,,,,,2,2,,"00000003",0,1,1] 
] 
,[["4ace516d8d62f107"] 
,["Job",,,,,,,,,2,2,,"00000004",0,1,1] 
] 
,[["5594b1f8d1f1e37"] 
,["Followers",,,,,,,,,2,2,,"00000005",0,1,1] 
] 
,[["2bc5e6a50e948a73"] 
,["Job: Nice",,"",,,,,,,2,2,,"00000006",0,1,1] 
] 
,[["397a6a970cade6e8"] 
,["rx8",,,,,,,,,2,2,,"00000007",0,1,1] 
] 
,[["13ea3c80821ad9c"] 
,["promi",,,,,,,,,2,2,,"00000008",0,1,1] 
] 
,[["588da2260e942271"] 
,["Firmen",,,,,,,,,2,2,,"00000009",0,1,1] 
] 
,[["337bb5990e4870e5"] 
,["News",,,,,,,,,2,2,,"0000000a",0,1,1] 
] 
,[["4856572c0e1de220"] 
,["Gaming",,,,,,,,,2,2,,"0000000b",0,1,1] 
] 
,[["3555f8f8bc5726f"] 
,["mine",,,,,,,,,2,2,,"0000000c",0,1,1] 
] 
,[["6a01451c89ca64ae"] 
,["Nette Leute",,"",,,,,,,2,2,,"0000000d",0,1,1] 
] 
,[["90ed4e98f5820f7"] 
,["Hamburg",,"",,,,,,,2,2,,"0000000e",0,1,1] 
] 
,[["56bac85c894170b8"] 
,["Job-Contacts",,"",,,,,,,2,2,,"0000000f",0,1,1] 
] 
,[["485ab93e8e81d66d"] 
,["Fussball",,"",,,,,,,2,2,,"00000010",0,1,1] 
] 
,[["5ec1bb9409bad931"] 
,["Journaille",,"",,,,,,,2,2,,"00000011",0,1,1] 
] 
,[["135ce0d189b1e545"] 
,["mal schauen",,,,,,,,,2,2,,"00000012",,1,1] 
] 
,[["1ecbecf28ec85202"] 
,["Lonely Circle",,"",,,,,,,2,2,,"00000013",0,1,1] 
] 
,[["38a246348c513a39"] 
,["ignore",,,,,,,,,2,2,,"00000014",0,1,1] 
] 
,[["2f9c4a3c0e1f43b9"] 
,["Vielschreiber",,"",,,,,,,2,2,,"00000015",0,1,1] 
] 
,[["7fd0532089537115"] 
,["Bombenbauer",,"",,,,,,,2,2,,"00000016",0,1,1] 
] 
,[["765e2a78e64b1a6"] 
,["Techsites",,"",,,,,,,2,2,,"00000017",0,1,1] 
] 
,[["598e823988cf077e"] 
,["OK",,"",,,,,,,2,2,,"00000018",0,1,1] 
] 
,[["3edae58f895c3933"] 
,["Star Trek",,,,,,,,,2,2,,"00000019",0,1,1] 
] 
,[["22ad725f89342264"] 
,["Deppen",,,,,,,,,2,2,,"0000001a",0,1,1] 
] 
,[["254c1dec0d1bf02a"] 
,["science",,,,,,,,,2,2,,"0000001b",0,1,1] 
] 
,[["2b4588aa898848a4"] 
,["Undeutsch",,,,,,,,,2,2,,"0000001c",0,1,1] 
] 
,[["300a8672084d875b"] 
,["eurpeans",,,,,,,,,2,2,,"0000001d",0,1,1] 
] 
,[["7de54f780f74eb6d"] 
,["Autoren",,,,,,,,,2,2,,"0000001e",0,1,1] 
] 
,[["152f86d208909412"] 
,["Unterhaltung",,,,,,,,,2,2,,"0000001f",0,0,1] 
] 
,[["6d96794b0f6ac25e"] 
,["Bookmarks",,"",,,,,,,2,2,,"00000020",0,1,1] 
] 
,[["76c46c5489053a6b"] 
,["Usertreffen",,,,,,,,,2,2,,"00000021",0,1,1] 
] 
,[["80d2af10e3778b1"] 
,["g+j",,,,,,,,,2,2,,"00000022",0,1,1] 
] 
,[["e2e37408d864f3f"] 
,["Ouya Follower",,,,,,,,,2,2,,"00000023",0,1,1] 
] 
,[["2916afdf8cbcf8e0"] 
,["Ingress DE",,"",,,,,,,2,2,,"00000024",0,1,1] 
] 
,[["74bca48bb5e9bf"] 
,["Ouya",,,,,,,,,2,2,,"00000025",0,1,1] 
] 
,[["63d74040084991b1"] 
,["Spam",,,,,,,,,2,2,,"00000026",0,1,1] 
] 
,[["6d0e7cf08bee08d8"] 
,["Geeks",,,,,,,,,2,2,,"00000027",0,1,1] 
] 
,[["1deb550f8d794be4"] 
,["janzneu",,,,,,,,,2,2,,"00000028",0,0,1] 
] 
,[["6c02104c094dd570"] 
,["urlaub",,,,,,,,,2,2,,"00000029",0,0,1] 
] 
,[["267736b60f3a46e7"] 
,["Heimat",,,,,,,,,2,2,,"0000002a",0,1,1] 
] 
,[["7a7fd8738eedd564"] 
,["Google",,,,,,,,,2,2,,"0000002b",0,0,1] 
] 
,[["3e6492e98907eda2"] 
,["Politik",,,,,,,,,2,2,,"0000002c",0,0,1] 
] 
,[["42f28c228ae071ac"] 
,["prio",,,,,,,,,2,2,,"0000002d",0,0,1] 
] 
,[["2c2fbd540de7df0f"] 
,["Optimizer",,,,,,,,,2,2,,"0000002e",0,1,1] 
] 
] 
] 
});</script> 
+0

주어진 예는 유효한 json이 아닙니다. 전체 문자열 텍스트를 복사하십시오 –

+0

@VasilVanchuk 전체 문자열 텍스트를 게시했습니다. 당신이 –

답변

2

배열의 모든 인덱스 값이 있어야합니다. 가질 수 없음 [ something, , something ]

인접한 각 쉼표 쌍 사이에 null이 필요합니다.

JSON에서
1

, 빈 배열 구성원 예를 들어, 유효하지 않은 : 당신은이 제거되면

["News",,,,,,,,,2,2,,"0000000a",0,1,1] 

, 그것은 유효한 JSON 수 : 사실

["News",2,2,"0000000a",0,1,1] 

, 이것은 무엇이다 오류 메시지가 알려줍니다. JSON spec을 읽어야합니다. 정말 짧습니다. validator도 실행할 수 있습니다. 나는 다음과 같은 솔루션에 온 @Quentin에서 답변 @kapa 다음

0

: 나는 그것을 좋아하지 않아

var cstr=complete.substring(startJSON,endJSON+1); 
while (cstr.indexOf(",,")>0) { 
    cstr=cstr.replace(",,",",null,")     
}; 
var ar2=$.parseJSON(cstr); 

은 정직합니다. 그것은 나에게 더러워 보인다.

+1

전에 내 게시 된 일부처럼 보이는 볼 수 있듯이 깨끗한 방법은 물론, JSON으로 원래 JSON를 해결하는 것입니다. 하지만 네가 그렇게 접근 할 수 없다는 걸 이해한다. 그래서 당신이 할 수있는 일은 이런 해킹입니다. – kapa