2014-09-16 2 views
0

** 다음 JSON 파일을 구문 분석 할 수 없습니다. 그것은 the operation couldn’t be completed. (cocoa error 3840.)입니다.obj c에서 JSON 파일을 구문 분석 할 수 없습니다

여기 내 코드입니다 : 나는 또한 다음을 시도

- (NSString *)loadJsFromFile:(NSString *)fileName 
{ 
    NSString *path = [[NSBundle mainBundle]pathForResource:fileName ofType:@"txt"]; 
    NSString *jsScript = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; 
    return jsScript; 
} 

// 

NSString *strInputParam = [self loadJsFromFile:@"samplein"]; 

NSData *dataInput = [strInputParam dataUsingEncoding:NSUTF8StringEncoding]; 

NSError *error; 

NSObject *input = [NSJSONSerialization JSONObjectWithData:dataInput options:NSJSONReadingMutableContainers error:&error]; 

if(error) 
{ 
    NSLog(@"%@",error.localizedDescription); 
} 

하지만, pls는이 JSON을 구문 분석 좀 도와 도움이되지 않았다. 고맙습니다.

1. 당신은이 방법 (```loadJsFromFile의 코드를 게시하지 않은 :
NSString *path = [[NSBundle mainBundle]pathForResource:@"samplein" ofType:@"txt"]; 
NSData *data = [[NSData alloc]initWithContentsOfFile:path]; 

NSError *error; 

NSObject *input = [NSJSONSerialization JSONObjectWithData:dataInput options:NSJSONReadingMutableContainers error:&error]; 

if(error) 
{ 
    NSLog(@"%@",error.localizedDescription); 
} 

몇 가지 명백한 문제가 여기에있다
sampleinputdata = { 
     "round": { 
      "id" : 1, 
      "course" : { 
       "id" : 2, 
       "slope" : 118, 
       "holes" : [ { 
        "id" : 1, 
        "hole_number" : 1, 
        "handicap" : 5, 
        "par" : 4 
       } , { 
        "id" : 2, 
        "hole_number" : 2, 
        "handicap" : 7, 
        "par" : 3 
       } , { 
        "id" : 3, 
        "hole_number" : 3, 
        "handicap" : 8, 
        "par" : 3 
       } , { 
        "id" : 4, 
        "hole_number" : 4, 
        "handicap" : 10, 
        "par" : 4 
       }, { 
        "id" : 4, 
        "hole_number" : 5, 
        "handicap" : 10, 
        "par" : 4 
       } , { 
        "id" : 5, 
        "hole_number" : 6, 
        "handicap" : 10, 
        "par" : 4 
       } , { 
        "id" : 6, 
        "hole_number" : 7, 
        "handicap" : 10, 
        "par" : 4 
       } , { 
        "id" : 7, 
        "hole_number" : 8, 
        "handicap" : 9, 
        "par" : 5 
       } , { 
        "id" : 8, 
        "hole_number": 9, 
        "handicap" : 11, 
        "par" : 3 
       } , { 
        "id" : 9, 
        "hole_number" : 10, 
        "handicap" : 5, 
        "par" : 4 
       } , { 
        "id" : 10, 
        "hole_number" : 11, 
        "handicap" : 7, 
        "par" : 3 
       } , { 
        "id" : 11, 
        "hole_number" : 12, 
        "handicap" : 8, 
        "par" : 3 
       } , { 
        "id" : 12, 
        "hole_number" : 13, 
        "handicap" : 10, 
        "par" : 4 
       }, { 
        "id" : 13, 
        "hole_number" : 14, 
        "handicap" : 10, 
        "par" : 4 
       } , { 
        "id" : 14, 
        "hole_number" : 15, 
        "handicap" : 10, 
        "par" : 4 
       } , { 
        "id" : 15, 
        "hole_number" : 16, 
        "handicap" : 10, 
        "par" : 4 
       } , { 
        "id" : 16, 
        "hole_number" : 17, 
        "handicap" : 10, 
        "par" : 4 
       } , { 
        "id" : 17, 
        "hole_number" : 18, 
        "handicap" : 9, 
        "par" : 5 
       } ] 
      }, 
      "viewer" : [ 
       { 
        "id" : 1, 
        "name" : "jimmy dean", 
        "handicap" : 10, 
        "n_flag" : true, 
        "g_flag" : true, 
        "group_name" : "groupone", 
        "team_name" : "teamtwo", 
        "scores" : [1,4,1,5,3,2,4,3,2,5,2,4,4,4,4,5,3,2] 
       } , { 
        "id" : 2, 
        "name" : "martha s", 
        "handicap" : 12, 
        "n_flag" : true, 
        "g_flag" : true, 
        "group_name" : "groupone", 
        "team_name" : "teamtwo", 
        "scores" : [3,4,6,5,3,2,4,3,2,5,2,1,4,4,4,5,3,2] 
       } , { 
        "id" : 3, 
        "name" : "jim bob", 
        "handicap" : 11, 
        "n_flag" : true, 
        "g_flag" : true, 
        "group_name" : "groupone", 
        "team_name" : "teamone", 
        "scores" : [3,4,6,5,3,2,4,3,2,5,2,4,6,4,4,5,3,2] 
       } , { 
        "id" : 4, 
        "name" : "big mac", 
        "handicap" : 13, 
        "n_flag" : true, 
        "g_flag" : true, 
        "group_name" : "groupone", 
        "team_name" : "teamone", 
        "scores" : [3,4,6,5,3,2,4,3,2,5,2,4,4,4,4,2,3,2] 
       } 
      ], 
      "bets" : { 
       "net_skins_bet": 10.00, 
       "gross_skins_bet": 5.00, 
       "better_ball_bet": 10.00, 
       "nassau_bets" : [ 
        { 
         "id" : 1, 
         "min_golfer_id" : 2, 
         "max_golfer_id" : 3, 
         "bet_amount" : 10.00 
        } , { 
         "id" : 2, 
         "min_golfer_id" : 2, 
         "max_golfer_id" : 4, 
         "bet_amount" : 10.00 
        } , { 
         "id" : 3, 
         "min_golfer_id" : 3, 
         "max_golfer_id" : 4, 
         "bet_amount" : 10.00 
        } , { 
         "id" : 4, 
         "min_golfer_id" : 1, 
         "max_golfer_id" : 2, 
         "bet_amount" : 12.00 
        } , { 
         "id" : 5, 
         "min_golfer_id" : 1, 
         "max_golfer_id" : 3, 
         "bet_amount" : 5.00 
        } , { 
         "id" : 6, 
         "min_golfer_id" : 1, 
         "max_golfer_id" : 4, 
         "bet_amount" : 0.00 
        } 
       ] 
      } 
     } 
    } 
+0

loadJsFromFile 메서드를 붙여주십시오. 또한 sampleinputdata = {로 JSON을 시작하면 유효한 JSON이 아닙니다. –

+2

'0 | 1 | 2' == 다소 불쾌합니다. 하지만 두 번째 코드 스 니펫은 유효한 JSON 데이터에 대해 작동해야합니다. – trojanfoe

+0

@ TomErikStorce pls 내 업데이트 된 코드 확인 –

답변

2

내 JSON 데이터

입니다`` `), 거기에 우리가 논평 할 수없는 뭔가가있을 수 있습니다. ```는 NSString * strInputParam = [자기 loadJsFromFile : @ "samplein.txt"는]```


2. 이러한 옵션의 의도는 무엇입니까? 0 | 1 | 2? 은`NSObject의 * ​​입력 = ' [NSJSONSerialization JSONObjectWithData : 인터페이스 DataInput 옵션 0 | 1 | 2 에러 & 에러]``http://jsonlint.com/ 따르면


는 해당 JSON 유효하지 않은 :

따라서

Parse error on line 1: sampleinputdata={
^ Expecting '{', '['

,

sampleinputdata = { ... } JSON 유효하지 않다. 아마도 "sampleinputdata": { ... }을 의미했거나 단순히 { ... }을 의미했을 것입니다.

참고 : 문자열을 통해 데이터를 전달 할 필요가 없습니다, 당신은을 NSData로 파일에서 직접로드 할 수 있습니다. 두 번째 방법은 사용해야하는 방법입니다.

+0

Pls가 내 업데이트 코드 –

+1

을 살펴 봅니다. JSON이 여전히 유효하지 않습니다. –

+0

이 온라인 파서 http://jsonviewer.stack.hu/를 사용하여 해당 JSON 데이터를 구문 분석하려고 시도했으며 성공적으로 구문 분석했습니다. –

관련 문제