8

を返す API へのリクエストを作成するとしmysql_query("Select * from user where id=1")ます。

リクエストが完了すると、ユーザー情報が json で返されます。デバッグを行うと、次NSlog(@"JSON : %@",json);のようになります。

JSON : (
    {
    aboutme = "";
    active = 0;
    birthday = "1992-10-14";
    "city_id" = 0;
    email = "test@test.com";
    fbid = "";
    firstname = test;
    gender = 1;
    id = 162;
    lastname = test;
    password = "$2a$12$8iy.sGr.4V/Ea3GfHZe0m.SLDrvoSj3/wYRlWsNce1yyCMeCbDrMC";
    "phone_number" = "";
    "recovery_date" = "0000-00-00 00:00:00";
    "register_date" = "2013-06-06 02:44:20";
    salt = "8iy.sGr.4V/Ea3GfHZe0m";
    "user_type_id" = 1;
    username = test;
}
)

今、私はそれを解析しAFJONDecode、 を取得し[json valueForKey:@"username"];てデバッグすると ( NSlog(@"username = %@",[json valueForKey@"username"]);)、次のようになります。

username = (
    testeteste739
)

それは私にオブジェクトを与えます(Jsonでは、username = testであり、username = "test"ではないため)。

では、このオブジェクトを文字列に変換するにはどうすればよいですか?

** アップデート **

次の方法で解決します。

NSArray *username = [JSON valueForKey:@"username"];
username = [username objectAtIndex:0];

これを乗り越える良い方法はありますか?ありがとう

4

1 に答える 1

26

JSON はディクショナリ オブジェクトであるため、json データを JSONDic NSDictionary 変数に取得し、次のように文字列に解析できます。

NSDictionary *JSONDic=[[NSDictionary alloc] init];
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:JSONDic
                                                   options:NSJSONWritingPrettyPrinted 
                                                     error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
于 2013-06-06T05:27:03.760 に答える