NSObjectをJSONに変換して再利用するための使いやすいライブラリウィジェットの例が必要です。JSonを解析するためにネット上でたくさんの例を解析しましたが、 SBJSONを使用してNSObjectをJSONに変換する、誰かが良いチュートリアルやNSObjectをJSONに変換するサンプルコードを持っていますか?SBJsonやその他のJSONライブラリを使用してオブジェクトをJsonに変換する
2
A
答えて
12
SBJson
を使用して、オブジェクトをJSON文字列に変換するには、proxyForJson
メソッドをオーバーライドする必要があります。 、以下のような実装ファイルで
.hファイル、
@interface MyCustomObject : NSObject {
NSString *receiverFirstName;
NSString *receiverMiddleInitial;
NSString *receiverLastName;
NSString *receiverLastName2;
}
@property (nonatomic, retain) NSString *receiverFirstName;
@property (nonatomic, retain) NSString *receiverMiddleInitial;
@property (nonatomic, retain) NSString *receiverLastName;
@property (nonatomic, retain) NSString *receiverLastName2;
- (id) proxyForJson;
- (int) parseResponse :(NSDictionary *) receivedObjects;
}
、
- (id) proxyForJson {
return [NSDictionary dictionaryWithObjectsAndKeys:
receiverFirstName, @"ReceiverFirstName",
receiverMiddleInitial, @"ReceiverMiddleInitial",
receiverLastName, @"ReceiverLastName",
receiverLastName2, @"ReceiverLastName2",
nil ];
}
そして、あなたはこのようなparseResponse
メソッドを記述する必要がJSON文字列からオブジェクトを取得します、
- (int) parseResponse :(NSDictionary *) receivedObjects {
self.receiverFirstName = (NSString *) [receivedObjects objectForKey:@"ReceiverFirstName"];
self.receiverLastName = (NSString *) [receivedObjects objectForKey:@"ReceiverLastName"];
/* middleInitial and lastname2 are not required field. So server may return null value which
eventually JSON parser return NSNull. Which is unrecognizable by most of the UI and functions.
So, convert it to empty string. */
NSString *middleName = (NSString *) [receivedObjects objectForKey:@"ReceiverMiddleInitial"];
if ((NSNull *) middleName == [NSNull null]) {
self.receiverMiddleInitial = @"";
} else {
self.receiverMiddleInitial = middleName;
}
NSString *lastName2 = (NSString *) [receivedObjects objectForKey:@"ReceiverLastName2"];
if ((NSNull *) lastName2 == [NSNull null]) {
self.receiverLastName2 = @"";
} else {
self.receiverLastName2 = lastName2;
}
return 0;
}
13
SBJSONでは、とても簡単です。もちろん
NSString *myDictInJSON = [myDict JSONRepresentation];
NSString *myArrayInJSON = [myArray JSONRepresentation];
、他の方法で配列を行くためには、実行します。
NSDictionary *myDict = [myDictInJSON JSONValue];
NSArray *myArray = [myArrayInJSON JSONValue];
2
JSON文字列からオブジェクトへ:
SBJsonParser *parser = [[SBJsonParser alloc] init];
// gives array as output
id objectArray = [parser objectWithString:@"[1,2,3]"];
// gives dictionary as output
id objectDictionary = [parser objectWithString:@"{\"name\":\"xyz\",\"email\":\"[email protected]\"}"];
JSON文字列へのオブジェクトから:
SBJsonWriter *writer = [[SBJsonWriter alloc] init];
id *objectArray = [NSArray arrayWithObjects:@"Hello",@"World", nil];
// Pass an Array or Dictionary object.
id *jsonString = [writer stringWithObject:objectArray];
関連する問題
- 1. SBJSON iPhone SDKを使用してデータをJSON形式に変換するには?
- 2. SBJSONを使用したJSONの作成
- 3. JSON gemを使用してカスタムオブジェクトをJSONに変換する
- 4. JSONオブジェクトをループに変換して配列に変換する
- 5. JSONをurlencodedに変換するライブラリ
- 6. GoogleのGsonを使用してJsonをJavaオブジェクトに変換する
- 7. jacksonを使用してJavaオブジェクトをjson文字列に変換するときにjsonプロパティが重複する
- 8. JSON-LIBを使用してBeanをJSONに変換する方法
- 9. JSONのパースとは、私は、このJSONを持ってSBJSON
- 10. SwiftyJSON:オブジェクトをJSONに変換する
- 11. フォームデータをJSONオブジェクトに変換する
- 12. C#を使用してJSONをDataTableに変換するには
- 13. SBJSonライブラリを使用してJSON文字列を解析中にメモリリークが発生する
- 14. json-simple-1.1.1.jarライブラリを使用して文字列をJSON配列に変換できますか?
- 15. JSONを複数のオブジェクトに変換します。 Jacksonを使用する
- 16. erlang(mochijson)のJSONオブジェクトにリストを変換
- 17. JSON文字列をJSONオブジェクトに変換する
- 18. jQueryを使用して選択リストをJSONに変換する
- 19. Mule 3を使用してPOJOをJSONに変換する
- 20. PHPを使用してJSONをCSV形式に変換する
- 21. R XMLを使用してXMLをJSONに変換する
- 22. JAXBを使用してJSONをPOJOに変換する
- 23. ビュー内の.NetオブジェクトをJSONオブジェクトに変換します。
- 24. PHPを使用してJSONオブジェクトを.jsonファイルに挿入
- 25. 次のJSONをJSTreeで使用できるJSONに変換するには
- 26. jsonオブジェクトを使用したjsonオブジェクトへのリスト
- 27. jsonを使ってjsonオブジェクトのフィールドを取得するには?
- 28. JSONオブジェクトとしてテーブルデータを変換する
- 29. Django、Twitter Streaming API(Twythonやその他のライブラリを使用)関連
- 30. カスタムJSONオブジェクトをVB.NETオブジェクトに変換する
これは、辞書や配列を変換するだけですか?もしそうなら、NSObjectをdictonaryに変換する方法があるのでしょうか、それとも手動で作成する必要がありますか?デフォルトで – Radu
、私はそう信じています。論理的には、サブクラスがクラスの基本を変更しない限り、 '[(NSDictionary *)myCustomDict JSONRepresentation]'のようなキャストされたサブクラスも受け入れる必要があります。ただし、NSObjectは必ずしもキーと値のペアのセットではなく、リストでもないため、任意のNSObjectで動作するわけではありません。 –
これを行うには、私はNSObjectの値を反復し、NSDictionaryを作成することをお勧めします。 NSObjectをサブクラス化する場合は、同じ方法をとる '-dictionaryForm'メソッドを持つことを検討してください。 –