2

iPhone アプリで、JSON ライブラリ (YAJL) を使用して、次のような形式の JSON 文字列を作成しようとしています。

{"user": 
  {"name":"Jon", "username":"jon22", "password":"passw@rd", "email":"jon22@example.com"}
}

しかし、これを作成するための YAJL メソッドがわかりません。

私は次のことを試しました:

 NSArray *params = [NSArray arrayWithObjects:@"Jon", @"jon22", @"passw@rd", @"jon22@gmail.com", nil];
 NSArray *keys = [NSArray arrayWithObjects:@"name", @"username", @"password", @"email", nil];

 NSDictionary *userDictionary = [NSDictionary dictionaryWithObjects:params forKeys:keys];
 NSString *JSONString = [userDictionary yajl_JSONString];

ただし、返される文字列は外側の「user」にラップされません。 YAJL を使用してこの json 文字列を作成するにはどうすればよいですか? 誰もこれを経験していますか?

どうもありがとう、ブレット

4

2 に答える 2

1

私は YAJL を使用しませんが、Apple が iOS でも使用しているSBJSONを使用しています...

とにかく、ライブラリは正しく動作しています。「ユーザー」辞書を作成していません!

次のようなことをする必要があります:

NSDictionary *serialize = [NSDictionary dictionaryWithObject:userDictionary forKey:@"user"];

そして、これを「JSON化」します。

これは、-yajl_JSONStringuserDictionary を呼び出すときに、userDictionary を「ルート オブジェクト」として使用しているためです。これを別のディクショナリ内にラップする場合は、明示的に行う必要があります。

于 2011-09-06T21:15:49.430 に答える
0

JSONKit https://github.com/johnezang/JSONKitを確認することを強くお勧めします。私は多数の JSON パーサーを使用しましたが、最も簡単であることがわかりました。

また、ドキュメントも素晴らしいです。

于 2011-09-06T22:48:46.690 に答える