0

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

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

前もって感謝します :)

4

4 に答える 4

2

求めている結果を得るには (適切な JSON でなくても)、次のような方法を試すことができます。

NSString *myString = @"fr-FR"; // Or whatever
NSString *result = [NSString stringWithFormat:@"{\"%@\"}", myString];
于 2012-05-04T09:14:45.913 に答える
1

IOS 5 +で開発する場合は、NSJSONSerializationクラスを使用できます。

文字列を使用してデータを作成する

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

その後、

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

JSONオブジェクトを作成するには

(入力しただけで、テストされていません)

于 2012-05-04T09:20:10.870 に答える
1

TouchJSONなどの JSON フレームワーク/ライブラリを使用する必要があり、次のようにして をエンコードできますNSString

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

ここのデモコードから)。

于 2012-05-04T09:15:48.740 に答える
0

json仕様を再度読んだ後のIMHO(http://www.json.org){"string"}は有効なjsonではなく、c#で使用しているコードは無効な結果を生成します。ただし、このように機能するc#コードと通信する必要がある場合は、JSONライブラリを使用して文字列自体をエンコードし、後で中括弧で囲む必要があります。そうすれば、引用符と中括弧を手動で追加するだけでは得られない、特殊なケース(引用符など)のJSONに必要なすべてのエスケープを取得できます。

于 2012-05-04T09:29:43.767 に答える