2016-07-11 12 views
-2

次のコードを使用して配列から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] 6ですのでdelayedJsonStringは、その中に6 jsonobjectsを含むことがあるが、それは最後のJSONオブジェクトが含まれています。 これをどのように並べ替えることができますか?

+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]; 

ちょうど今はまだそれをテストしていない、これを手早く:

たぶん、あなたはこのような何かを試すことができます。 (データを想定)

[{ "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 ":0} {" t ":0、" y ":0} {" t ":1、" y ":1} {" t " "j":0} {"t":1、 "y":1} {"t":2、 "y":2} 'しかし、各jsonオブジェクトの間にコンマはありません。どうすればこれを整理できますか? – Learner

関連する問題