2012-03-13 3 views
0

모바일 jquery를 사용하여 모바일 웹 사이트 용 웹 서비스를 만들고 JSON 문자열을 반환합니다. json.parseJSON 메서드를 사용하여이 json을 파싱하기 시작하면 때로는 정상적으로 작동하지만 경우에 따라 JSON.parse: bad control character in string literal과 같은 오류가 발생합니다.JSON 구문 분석 오류 : JSON.parse : 문자열 리터럴의 제어 문자가 잘못되었습니다.

jsonlint.com에서이 json의 유효성을 이미 확인했으며 유효한 json 메시지가 제공됩니다.

Follwoing이 내 json 문자열입니다.

[{"ID":"468438","Text":"<a target='_blank' class='msg_links' href='http://bit.ly/jJa131' >http://bit.ly/jJa131</a> sdfdsfasd <br> <br> shankar (shankar) on Ogoing Small Business Social Network <br> <br> IT company ","CreatedText":"Jan 20 2012 6:01AM","UserID":"535","UserName":"shankar","FullName":"shankar","UpCategoryID":"8","UpCategoryName":"Deals","CategoryName":"Education & child care","IsRecommend":"False","RecommendUser":"","RecommendRating":"0","RecommendId":"0","LikedCount":"0","CommentsCount":"0","TotalRowCount":"1011","Attachment":"","RealFilename":"","Source":"","ImageURL":"http://ogoing.rigelnetworks.com/Images/Thumb/music_arts_icon_large_634666567215996287.jpg"},{"ID":"468437","Text":"<a target='_blank' class='msg_links' href='http://bit.ly/jJa131' >http://bit.ly/jJa131</a> asdfasdfasdfasdfasdf <br> shankar (shankar) on Ogoing Small Business Social Network <br> IT company ","CreatedText":"Jan 20 2012 5:35AM","UserID":"535","UserName":"shankar","FullName":"shankar","UpCategoryID":"8","UpCategoryName":"Deals","CategoryName":"Education & child care","IsRecommend":"False","RecommendUser":"","RecommendRating":"0","RecommendId":"0","LikedCount":"0","CommentsCount":"0","TotalRowCount":"1011","Attachment":"","RealFilename":"","Source":"","ImageURL":"http://ogoing.rigelnetworks.com/Images/Thumb/music_arts_icon_large_634666567215996287.jpg"},{"ID":"468434","Text":"asdfasdfasdf asdfasdfsadfasdfa ","CreatedText":"Jan 20 2012 4:55AM","UserID":"535","UserName":"shankar","FullName":"shankar","UpCategoryID":"8","UpCategoryName":"Deals","CategoryName":"Education & child care","IsRecommend":"False","RecommendUser":"","RecommendRating":"0","RecommendId":"0","LikedCount":"0","CommentsCount":"0","TotalRowCount":"1011","Attachment":"","RealFilename":"","Source":"","ImageURL":"http://ogoing.rigelnetworks.com/Images/Thumb/music_arts_icon_large_634666567215996287.jpg"},{"ID":"468433","Text":"asdfasdfasdf asdfasdf ","CreatedText":"Jan 20 2012 4:55AM","UserID":"535","UserName":"shankar","FullName":"shankar","UpCategoryID":"8","UpCategoryName":"Deals","CategoryName":"Education & child care","IsRecommend":"False","RecommendUser":"","RecommendRating":"0","RecommendId":"0","LikedCount":"0","CommentsCount":"0","TotalRowCount":"1011","Attachment":"","RealFilename":"","Source":"","ImageURL":"http://ogoing.rigelnetworks.com/Images/Thumb/music_arts_icon_large_634666567215996287.jpg"},{"ID":"468432","Text":"asdfasdfasdf ","CreatedText":"Jan 20 2012 4:54AM","UserID":"535","UserName":"shankar","FullName":"shankar","UpCategoryID":"8","UpCategoryName":"Deals","CategoryName":"Education & child care","IsRecommend":"False","RecommendUser":"","RecommendRating":"0","RecommendId":"0","LikedCount":"0","CommentsCount":"0","TotalRowCount":"1011","Attachment":"","RealFilename":"","Source":"","ImageURL":"http://ogoing.rigelnetworks.com/Images/Thumb/music_arts_icon_large_634666567215996287.jpg"},{"ID":"468012","Text":"Why this ? ","CreatedText":"Dec 20 2011 12:37AM","UserID":"537","UserName":"shankar","FullName":"shankar mahadevan","UpCategoryID":"1","UpCategoryName":"General","CategoryName":"Automotive","IsRecommend":"False","RecommendUser":"","RecommendRating":"0","RecommendId":"0","LikedCount":"1","CommentsCount":"0","TotalRowCount":"1011","Attachment":"","RealFilename":"","Source":"ogoing","ImageURL":"http://ogoing.rigelnetworks.com/Images/Thumb/img634661225851958174_org.png"},{"ID":"468011","Text":"Tixkhogclycyo ","CreatedText":"Dec 20 2011 12:37AM","UserID":"537","UserName":"shankar","FullName":"shankar mahadevan","UpCategoryID":"1","UpCategoryName":"General","CategoryName":"Automotive","IsRecommend":"False","RecommendUser":"","RecommendRating":"0","RecommendId":"0","LikedCount":"0","CommentsCount":"0","TotalRowCount":"1011","Attachment":"","RealFilename":"","Source":"ogoing","ImageURL":"http://ogoing.rigelnetworks.com/Images/Thumb/img634661225851958174_org.png"},{"ID":"468010","Text":"Zgkxxkxxhhl ","CreatedText":"Dec 20 2011 12:35AM","UserID":"537","UserName":"shankar","FullName":"shankar mahadevan","UpCategoryID":"1","UpCategoryName":"General","CategoryName":"Automotive","IsRecommend":"False","RecommendUser":"","RecommendRating":"0","RecommendId":"0","LikedCount":"0","CommentsCount":"0","TotalRowCount":"1011","Attachment":"","RealFilename":"","Source":"ogoing","ImageURL":"http://ogoing.rigelnetworks.com/Images/Thumb/img634661225851958174_org.png"},{"ID":"468009","Text":"Jfzkdlufil ","CreatedText":"Dec 20 2011 12:35AM","UserID":"537","UserName":"shankar","FullName":"shankar mahadevan","UpCategoryID":"1","UpCategoryName":"General","CategoryName":"Automotive","IsRecommend":"False","RecommendUser":"","RecommendRating":"0","RecommendId":"0","LikedCount":"0","CommentsCount":"0","TotalRowCount":"1011","Attachment":"","RealFilename":"","Source":"ogoing","ImageURL":"http://ogoing.rigelnetworks.com/Images/Thumb/img634661225851958174_org.png"},{"ID":"468007","Text":"hellooooooo ","CreatedText":"Dec 20 2011 12:21AM","UserID":"537","UserName":"shankar","FullName":"shankar mahadevan","UpCategoryID":"1","UpCategoryName":"General","CategoryName":"Automotive","IsRecommend":"False","RecommendUser":"","RecommendRating":"0","RecommendId":"0","LikedCount":"0","CommentsCount":"0","TotalRowCount":"1011","Attachment":"","RealFilename":"","Source":"ogoing","ImageURL":"http://ogoing.rigelnetworks.com/Images/Thumb/img634661225851958174_org.png"}]

나에게이 문제에 대한 솔루션을 제공하십시오. 미리 감사드립니다. 당신이합니다 (JSON의 두 부분에서) 그것을 꺼내 jsonlint.com에 전달하면

+1

형식 당신의 JSON을 사용하여 이전의 질문에 대한 답변을 받아 들인다면 제대로 리터럴 이런 종류의 인코딩해야합니다. – jgauffin

+1

@EvilP jsonlint.com에서이 json의 유효성을 이미 확인했으며 올바른 json 메시지를 제공합니다. –

+0

@AtulPatel 그런 다음 json 자체에 아무런 문제가 없으며 수행 된 조작이 고려되거나 json을 변경할 수 있습니까? –

답변

4

그것은이
http://bit.ly/jJa131 sdfdsfasd shankar (shankar) 부분 (들)

의, json으로는 성공적으로 유효성을 검사합니다.

+0

답장을 보내 주셔서 감사합니다. 사실 클립 보드에 복사 한 줄로 된이 부분에 대한 json 문자열입니다. 그래서 이것은이 문제의 일부가 아닙니다. jsonlint.com에서 이미 json의 유효성을 검사했기 때문입니다. –

+0

jsonlint가 유효하다라고 말하면 아마 유효 할 것입니다. 아마도 여러분의 호출 코드가 그것을 잘못 인코딩/해독합니까? – SpaceBison

+0

**이 json 문자열을 구문 분석하기 위해 ** var obj = jQuery.parseJSON (msg.d); **을 작성했으며 오류가 발생합니다. msg.d는이 json 문자열을 반환합니다. –

3

글쎄 그냥 같은 오류가 있었고 일부 디버깅 후에 위의 오류가 발생하는 문자열 중 하나에 개행이 있음을 발견했습니다. 나는 견적 직전에 문자열 끝에 실제로 가지고 있었다.

{"One":"My String \n"} 
12

당신은 예를

yourJsonText = yourJsonText.Replace("\n","\\n");

에 대한 \\n\n을 대체 할 수 있지만 asp.net을 사용하는 경우, 그것은

yourJsonText = HttpUtility.JavaScriptStringEncode(yourJsonText)

+0

3 년 후 이것이 나를 도와주었습니다. 감사! –

1

하여 JSON 문자열을 인코딩하는 것이 좋습니다 일반적으로 이러한 오류는 다음과 같은 문자열 리터럴로 인해 발생할 수 있습니다.

연구 \ \

N

는 자바 스크립트의 JSON.parse() 함수