gpt4 book ai didi

objective-c - 从 json 数据填充类

转载 作者:行者123 更新时间:2023-12-04 04:34:43 26 4
gpt4 key购买 nike

我有一个 WCF,它以以下格式返回一些 json 数据:

{
"RetrieveLocationsResult": [
{
"Address": "106 Mullaghboy Road",
"Category": "Tarmac",
"Closest_Property_Number": 106,
"ID": 33,
"Image1": 1234,
"Image2": 0,
"Image3": 0,
"Latitude": 5,
"Longitude": "-1.541902",
"Notes": "New Driveway",
"User_ID": 1
},
{
"Address": "3 drumard road",
"Category": "Tarmac",
"Closest_Property_Number": 3,
"ID": 40,
"Image1": 23421,
"Image2": 0,
"Image3": 0,
"Latitude": 4,
"Longitude": "-2.541902",
"Notes": "new gates",
"User_ID": 1
},
]
}

这可以在此处完整查看 http://crm.fpmccann.co.uk/TemperatureWebService/iphonewebservice.svc/retrievelocations

我有一个名为 location 的类,其中包含每个变量。我想要做的是将这个 json 数据解析到每个位置,有点制作一个位置数组,这些位置将使用经度和纬度放置在 map 上。

到目前为止,我解析数据的方法是:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.

NSString *urlAsString = @"http://crm.fpmccann.co.uk/TemperatureWebService/iphonewebservice.svc/retrievelocations";
NSURL *url = [NSURL URLWithString:urlAsString];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];

[NSURLConnection
sendAsynchronousRequest:urlRequest
queue:[[NSOperationQueue alloc] init]
completionHandler:^(NSURLResponse *response,
NSData *data,
NSError *error)

{
NSLog(@"error: %@", error);
NSLog(@"data: %@", data);
NSLog(@"response: %@", response);

if ([data length] >0 && error == nil)
{
NSArray *array = [NSJSONSerialization JSONObjectWithData:data
options:0
error:&error];
NSLog(@"Response: %@", array);

CLLocationCoordinate2D location; // coordinates of the annotation
NSMutableArray *newAnnotations = [NSMutableArray array]; // an array in which we'll save our annotations temporarily
MKPointAnnotation *newAnnotation; // the pointer to the annotation we're adding

NSMutableArray *location = [array valueForKey:@"RetrieveLocationsResult"];


NSMutableArray *longitude = [[array valueForKey:@"RetrieveLocationsResult"] valueForKey:@"Longitude"];


// NSLog(@"Response", response, data);
}
else if ([data length] == 0 && error == nil)
{
NSLog(@"Nothing was downloaded.");
}
else if (error != nil){
NSLog(@"Error = %@", error);
}

}];


}

请原谅这是在 View 中加载的,这将在其工作后立即更改。
它正在创建和称为位置的数组,其中有 4 个对象,但其中没有任何内容。我想要做的是创建一个 for 循环并根据结果填充一个类?

最佳答案

为检索结果创建一个 JSON 字典:

NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
NSMutableArray *retrieveLocationsResultArr = [NSMutableArray arrayWithArray:[jsonDict objectForKey:@"RetrieveLocationsResult"]];

[retrieveLocationsResultArr enumerateObjectsUsingBlock:^(NSDictionary *locationDict, NSUInteger idx, BOOL *stop) {
//Create your Location Objects
NSString *addressStr = [locationDict valueForKey:@"Address"];//sample, extract all values you want in your custom objects.
}];

关于objective-c - 从 json 数据填充类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19954306/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com