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: 10

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 对象中实际定义)数组,它只会返回 nil,它总是会NO在你发送它时计算-boolValue)。

最后,上述代码是为 ARC 编写的,需要 Xcode 4.5 或 Clang 4.1 以及 iOS 5.0 的部署目标。如果您不使用 ARC、使用旧版 Xcode 构建或针对 5.0 之前的版本,则必须调整代码。

于 2012-10-03T04:07:38.503 回答
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

在这里,您拥有的是一个NSArrayof NSDictionarys。因此,使用 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

如果您想从 JSONData 获取数据或字典,请使用以下代码..

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 回答