0

次のような JSON があります。

[{"ID" : "351", "Name" : "Cam123 ", "camIP" : "xxx.xxx.xxx.xxx",
  "Username" : "admin", "Password" : "damin", "isSupportPin" : "1" },
 {"ID" : "352", "Name" : "Cam122 ", "camIP" : "xxx.xxx.xxx.xxx",
  "Username" : "admin", "Password" : "damin", "isSupportPin" : "0" }
]

isSupportPinresult: 1または0で取得したい。

if (x == 1)
{
    mybutton.enabled = TRUE;
}
else
{
    mybutton.enabled = FALSE;   
}

どうすればそれができますか?

4

4 に答える 4

1

このデータを含む NSData オブジェクトがあるとします。

// Your JSON is an array, so I'm assuming you already know
// this and know which element you need. For the purpose
// of this example, we'll assume you want the first element
NSData* jsonData = /* assume this is your data from somewhere */
NSError* error = nil;
NSArray* array = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
if( !array ) {
  // there was an error with the structure of the JSON data...
}
if( [array count] > 0 ) {
  // we got our data in Foundation classes now...
  NSDictionary* elementData = array[0]; // pick the correct element
  // Now, extract the 'isSupportPin' attribute
  NSNumber* isSupportPin = elementData[@"isSupportPin"];
  // Enable the button per this item
  [mybutton setEnabled:[isSupportPin boolValue]];
} else {
  // Valid JSON data, but no elements... do something useful
}

上記のコード スニペットの例では、読みたい要素 (これらはユーザー行か何かだと思います) がわかっていること、および JSON 属性名が何であるかを知っていること (たとえば、isSupportPin返された JSON オブジェクトで実際に定義されていない場合) を前提としています。配列のNO場合、送信時に常に評価される nil を返すだけです-boolValue)。

最後に、上記のコードは ARC 用に記述されており、Xcode 4.5 または Clang 4.1 と iOS 5.0 の展開ターゲットが必要です。ARC を使用していない場合、レガシー バージョンの Xcode でビルドしている場合、または 5.0 より前のものをターゲットにしている場合は、コードを調整する必要があります。

于 2012-10-03T04:07:38.503 に答える
0

ここにあなたが持っているのNSArrayNSDictionaryのです。したがって、SBJSONライブラリを使用すると、次のように実行できます。

SBJsonParser *parser =  [SBJsonParser alloc] init];
NSArray *data = [parser objectFromString:youJson];
for (NSDictionary *d in data)
{
    NSString *value = [d objectForKey:@"Name"];
}

ライブラリはhttp://stig.github.com/json-framework/にあります。

于 2012-10-03T04:05:30.920 に答える
0

私があなたを助ける以下のリンクに従ってください。

http://www.xprogress.com/post-44-how-to-parse-json-files-on-iphone-in-objective-c-into-nsarray-and-nsdictionary/

于 2012-10-03T03:56:08.777 に答える
0

JSONData からデータまたは Dictionary を取得する場合は、次のコードを使用します。

NSString *responseString = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
NSArray *resultsArray = [responseString JSONValue];
for(NSDictionary *item in resultsArray)
{
    NSDictionary *project = [item objectForKey:@"result"];//use your key name insted of result
    NSLog(@"%@",project);
}  

また、以下のリンクから JSON ライブラリとチュートリアルをダウンロードしてください...

http://mobileorchard.com/tutorial-json-over-http-on-the-iphone/

于 2012-10-03T04:39:13.277 に答える