1

次のようなデータを持つクラスがあります

Class1 *obj = [[Class1 alloc] init];
obj.One=@"1";
obj.Two=@"2";
obj.Three=@"3";

このオブジェクトを次のように変換したい

{"One":"1","Two":"2","Three":"3"}

Objective C でそれを行うにはどうすればよいですか?

4

1 に答える 1

1

クラスのインスタンス メソッドを記述してデータをシリアル化する (つまり、メンバー変数を有効な JSON データに変換する) 必要があり、JSON データを解析してクラスに戻す別のメソッドが必要になる場合があります。

これを行うための標準的な方法がどこかにあるかどうか疑問に思っている場合、簡単に言えば「いいえ」です。クラス メンバー変数は任意のオブジェクト型である可能性があるため、最初に有効な JSON データ型に変換する必要があります。(文字列、数値、ブール値、配列、または辞書)

あなたの例では、これには次のような辞書の作成が必要です。

NSDictionary *dictionary = @{@"One" : obj.One, @"Two" : obj.Two, @"Three" : obj.Three};

次に、 NSJSONSerialization クラスを使用して、NSDictionary を有効な JSON 文字列に変換する必要があります。

于 2013-11-09T06:26:31.863 に答える