2016-07-11 4 views
-2

Im 다음 코드를 사용하여 배열에서 json 문자열을 만듭니다.nsmutablearray에서 일련의 json 문자열을 만듭니다.

for (int k = 0 ; k < [[self totalCompliancesCount] count]; k++) { 
     delayedJsonObject = [[NSMutableDictionary alloc]init]; 
     [delayedJsonObject setValue:[[self totalCompliancesCount] objectAtIndex:k] forKey:@"t"]; 
     [delayedJsonObject setValue:[[self totalCompliedCompliancesCount] objectAtIndex:k] forKey:@"y"]; 
     delayedJsonData = [NSJSONSerialization dataWithJSONObject:delayedJsonObject options:0 error:nil]; 
     delayedJsonString = [[NSString alloc] initWithBytes:[delayedJsonData bytes] length:[delayedJsonData length] encoding:NSUTF8StringEncoding]; 

    } 

[[self totalCompliancesCount] count] 그래서 delayedJsonString이 내 6 jsonobjects를 포함해야하지만 마지막 JSON 객체를 포함 6입니다. 어떻게 정렬 할 수 있습니까?

+0

마지막으로 모든 반복에서 새로운 'delayedJsonString' 반복 값 –

답변

0

내가 제대로 질문을 얻는 경우에, 당신은 객체의 목록을 기반으로 문자열을하고 싶어 : 같은

보십시오 뭔가.

어쩌면 당신은 이런 식으로 뭔가를 시도 할 수 있습니다 :

NSMutableArray *delayedJsonObjectList = [NSMutableArray new]; 
for (int k = 0 ; k < [[self totalCompliancesCount] count]; k++) { 
    delayedJsonObject = [[NSMutableDictionary alloc]init]; 
    [delayedJsonObject setValue:[[self totalCompliancesCount] objectAtIndex:k] forKey:@"t"]; 
    [delayedJsonObject setValue:[[self totalCompliedCompliancesCount] objectAtIndex:k] forKey:@"y"]; 
    [delayedJsonObjectList addObject:delayedJsonObject]; 
} 
NSError *error = nil; 
NSData *delayedJsonData = [NSJSONSerialization dataWithJSONObject:delayedJsonOjbectList options:NSJSONWritingPrettyPrinted error:&error]; 
NSString *jsonString = [[NSString alloc] initWithData:delayedJsonData encoding:NSUTF8StringEncoding]; 

는 아직 테스트하지 않은 지금이 채찍.

OUTPUT 테스트 후 업데이트한다 : { "t"1, "Y"2}, { "t

[{1,"Y "(2)"t "를} (데이터를 상정) ": 1,"y ": 2}, {"t ": 1,"y ": 2} ..]

0

당신은 루프의 외부에서이 라인을 이동해야합니다 당신은 효과적으로 루프의 delayedJsonString 모든 반복을 다시보다는 마지막에 추가하고

delayedJsonObject = [[NSMutableDictionary alloc]init]; 
+0

아직 작동하지 않습니다 – Learner

1

.

NSMutableString *delayedJsonString = @"".mutableCopy; 
for (int k = 0 ; k < [[self totalCompliancesCount] count]; k++) { 
    delayedJsonObject = [[NSMutableDictionary alloc]init]; 
    [delayedJsonObject setValue:[[self totalCompliancesCount] objectAtIndex:k] forKey:@"t"]; 
    [delayedJsonObject setValue:[[self totalCompliedCompliancesCount] objectAtIndex:k] forKey:@"y"]; 
    delayedJsonData = [NSJSONSerialization dataWithJSONObject:delayedJsonObject options:0 error:nil]; 
    [delayedJsonString appendString:[[NSString alloc] initWithBytes:[delayedJsonData bytes] length:[delayedJsonData length] encoding:NSUTF8StringEncoding]];   
} 
+0

작동합니다. 출력은'{ "t": 0, "y": 1} { "t": 0, "y": 0} "j": 0} { "t": 1, "y": 1} { "t": 2, "y": 2}'그러나 각 json 객체 사이에는 쉼표가 없습니다. 이것을 어떻게 분류 할 수 있습니까? – Learner

관련 문제