私はUIpickerで少し立ち往生しています。これが私のJSONデータです:
{
"contact_id": [
"455",
"464"
],
"contact_name": [
"Administrator",
"Main contact"
]
}
データをNSdictionaryに保存し、オブジェクトに変換した後、連絡先を保存するNSarrayを作成しました。私のViewcontroller.mには次のものがあります:JSONを使用したオブジェクトとキーを持つUIPicker
// Creating an URL object
NSURL *url = [NSURL URLWithString:@"http://web.com/json.php"];
//Creating the data object that will hold the content of the URL
NSData *jsonData = [NSData dataWithContentsOfURL:url];
NSError *error = nil;
NSDictionary *result = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
contactlist = [result objectForKey:@"contact_name"];
連絡先リストを使用して、連絡先の値をドロップダウンに表示できます。これが私の他の代表者です
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}
// returns the # of rows in each component..
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return [contactlist count];
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return [contactlist objectAtIndex:row];
}
- (void)pickerView:(UIPickerView *)pickerView
didSelectRow:(NSInteger)row
inComponent:(NSInteger)component{
contactTextField.text = (NSString *)[contactlist objectAtIndex:row];
}
選択した連絡先の対応するIDをJSONPOSTリクエストで送信したいと思います。
たとえば、contact_nameを選択した場合Administrator
、そのcontact_idを取得したい455
メソッドを作成しました
- (IBAction)SendMessage:(id)sender ;
サーバーサイドスクリプトに送信する前にJSONデータを作成します。ここで、連絡先名ではなくIDを渡す必要があります。
// NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"603", @"contact",nil];
問題を解決するためにこのアレイを作成しましたが、動作させることができませんでした。
contactid = [result objectForKey:@"contact_id"];