2011-01-29 5 views
3

私のiPhoneアプリはPHPウェブサイトからJSONオブジェクトを取得しています。PHPとObjective-Cの間のJSONオブジェクト

PHPサイトのオブジェクトには、整数の複数のプロパティがあります。

データベースから検索される特性はJSONに、このように見えるバック(それらはINTとして格納されている)データベースから来る:PHPコードで変更され"seatedplayers":"3"

特性は、このように見えますJSON:私が正しく、このようにそれらをフォーマットするNSNumberFormatterを使用しています私のObj-Cで"currentseat":1


[numFormatter numberFromString:[jsonObject objectForKey:@"seatedplayers"]];(jsonObjectがNSDictionaryある)

そのコードは、値の周りの引用符付きのプロパティではうまく動作しますが、他のものでは機能しません。 Objective-CコードにstringValueを追加すると、引用符のないプロパティでは動作しますが、引用符付きのプロパティでは機能しません。

ここで私の大きな問題は、このアプリは個人的に書くつもりのないサイトと通信する必要があることです。Objective-Cのどのコードを使ってどちらのインスタンスも処理できますか?

EDIT
これは、私はNSDictionaryのjsonObjectを取得する方法です。

- (NSDictionary *) getJSONObjectFromWebAddress:(NSString *) address { 
// Prepare the URL Request 
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:address]]; 

// Perform the request, expecting JSON back 
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 

NSError *error; 
SBJsonParser *parser = [[SBJsonParser new] autorelease]; 
NSDictionary *jsonObject = [parser objectWithString:responseString error:&error]; 
if (!jsonObject) { 
    NSLog(@"%@", error); 
} 

[responseString release]; 
return jsonObject; 
} 
+0

stringValue to what? json値を使ってNSDictionaryをどうやって取得しましたか?私は個人的にはNSScannerを使用するか、純粋なC言語で何かを書くでしょう。 –

+0

質問にNSDictionaryとしてどのように回答するかを追加しました。私はそれが何であるかわからないので、NSScannerを調べます。 –

+0

これは奇妙なことですが、私が問題を解決するのに役立つ答えが削除され、著者の誰が誰だったかはわかりません。 –

答えて

2

私は同じ問題がありました。幸いにも、NSStringとNSNumberの両方がintValueに応答するので、安全に使用できます。


//NSDictionary* myJsonParsed; 
[NSString stringWithFormat:@"%d", [[myJsonParsed valueForKey:@"stringOrInt"] intValue]]; 
+0

intValueはNSNumberを返しますか? Objective-Cの私の型はCoreDataオブジェクトです。 –

+0

intValueはC intを返します。 NSNumberを作成するには、 '[NSNumber numberWithInt:[[myJsonParsed valueForKey:@" stringOrInt "] intValue]]; – seppo0010

関連する問題