2012-05-04 19 views
0

私はObjCのキーなしでNSStringからJsonStringを作成する必要があります。 すべてのチュートリアルでは、NSDictionaryまたはNSDataからのシリアライズについて説明しています。IOS - ObjC - JSONString NSStringから

私の文字列は@ "fr-FR"のようです。 私が探している結果は@ "{" fr-FR "}"ですが、動的です。 異なる種類の引数に対して同じことをする必要があるため、自分ではできません。事前に

感謝:)

+2

{fr-FR}は有効なJSONではないので、ここで何をしたいのか分かりません。 –

+0

私は知っています。私が必要とする結果は、c#JSonConvert.SerializeObject( "fr-FR")と同じです。この関数の結果は{"fr-FR"} – user1147981

+0

@ user1147981です。文字列を中括弧で囲んでほしいと思っていますか?その場合は私の答えを下にチェックしてください。 – Alladinian

答えて

2

あなたはこのような何かを試みることができる(それが適切なJSONない場合でも)あなたが求めている結果を達成するために:

NSString *myString = @"fr-FR"; // Or whatever 
NSString *result = [NSString stringWithFormat:@"{\"%@\"}", myString]; 
1

あなたはJSONを使用する必要がありますたとえばTouchJSONためのフレームワーク/ライブラリ、その後、あなたはあなたのNSStringエンコードするために次の操作を行うことができます(demo code hereから)

theData = [[CJSONSerializer serializer] serializeObject:theString 
                error:&theError]; 

を。

1

あなたはIOS 5 +

に開発すればあなたの文字列で

NSString *myString = @"fr-FR"; // Or whatever 
NSString *result = [NSString stringWithFormat:@"{%@}", myString]; 
NSData* data=[result dataUsingEncoding:NSUTF8StringEncoding]; 

のデータを作成し、あなたのJSONオブジェクト

を作成するために

+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error 

を使用NSJSONSerializationクラスを使用することができます

(入力済み、テストされていません)

0

IMHOのjson spec(http://www.json.org)をもう一度読んだ後、{"string"}は有効ではありません。jsonとc#で使用しているコードが無効な結果を生成します。ただし、このように動作するC#コードと通信する必要がある場合は、JSONライブラリを使用して文字列自体をエンコードし、次にを中括弧でパックしてください。そうすれば、引用や中かっこを手動で追加するだけで、特別なケース(引用符など)でJSONに必要なすべてのエスケープ処理を行うことができます。