NSArray
をJSON
配列形式でサーバーに送信する必要があります。 JSON
に変換するにはどうすればよいですか。これは、私が渡す必要があるNSArray
のサンプルです。
array([0] => array('latitude'=>'10.010490',
'longitude'=>'76.360779',
'altitude'=>'30.833334',
'timestamp'=>'11:17:23',
'speed'=>'0.00',
'distance'=>'0.00');
[1] => array('latitude'=>'10.010688',
'longitude'=>'76.361378',
'altitude'=>'28.546305',
'timestamp'=>'11:19:26',
'speed'=>'1.614',
'distance'=>'198.525711')
)`
必要な形式は次のとおりです
[
{ "latitude":"10.010490",
"longitude":"76.360779",
"altitude":"30.833334",
"timestamp":"11:17:23",
"speed":"0.00",
"distance":"0.00"
},
{
"latitude":"10.010688",
"longitude":"76.361378",
"altitude":"28.546305",
"timestamp":"11:19:26",
"speed":"1.614",
"distance":"198.525711"
}
]
誰かが解決策を持っていますか?前もって感謝します。
NSDictionary *firstJsonDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
@"10.010490", @"latitude",
@"76.360779", @"longitude",
@"30.833334", @"altitude",
@"11:17:23", @"timestamp",
@"0.00", @"speed",
@"0.00", @"distance",
nil];
NSDictionary *secondJsonDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
@"10.010490", @"latitude",
@"76.360779", @"longitude",
@"30.833334", @"altitude",
@"11:17:23", @"timestamp",
@"0.00", @"speed",
@"0.00", @"distance",
nil];
NSMutableArray * arr = [[NSMutableArray alloc] init];
[arr addObject:firstJsonDictionary];
[arr addObject:secondJsonDictionary];
NSData *jsonData2 = [NSJSONSerialization dataWithJSONObject:arr options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData2 encoding:NSUTF8StringEncoding];
NSLog(@"jsonData as string:\n%@", jsonString);
最も簡単で最良のアプローチ!!!
NSArrayまたはNSMutableArrayをjsonStringに変換するには、まずそれをNSDataに変換してから、それをさらにNSStringに変換します。このコードを使用
NSData* data = [ NSJSONSerialization dataWithJSONObject:yourArray options:NSJSONWritingPrettyPrinted error:nil ];
NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
それは私を助け、それがあなたにも役立つことを願っています。ではごきげんよう。
SBJson-Framework をお勧めします。
NSMutableArray
の変換はNSString *jsonString = [yourArray JSONRepresentation];
と同じくらい簡単です
編集:Jack Farnandishは、それをJsonに変換する前に、NSDictionaryに変換する必要があります。私の例では、NSMutableArrayにディクショナリを含める必要があります。配列は、文字列の最初と最後に角かっこを作成する場合にのみ必要です。
IOSの JSON関数でビルド を使用するか、外部ライブラリを使用できます。 JSONKit データをJSONに変換します
最初に、構造をNSDictionary
クラスとNSArray
を含むNSDictionary
オブジェクトに変更する必要があります。次に、iOS 5でJSONKitを試してください。シリアライズは標準のNSJSONSerialization
よりもうまく機能します。
チェック this チュートリアル、iOS 5.0のJSONが明確に説明されました(脱線、脱レール化)。
呼び出しているサービスはRESTfulサービスですか?
その場合は、RestKitの使用を強くお勧めします。オブジェクトのシリアライズ/デシリアライズを行います。また、すべてのネットワーク基盤を処理します。非常に価値があり、維持管理されています。