Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios JSON数据不是来自本地主机_Ios_Json_Localhost - Fatal编程技术网

Ios JSON数据不是来自本地主机

Ios JSON数据不是来自本地主机,ios,json,localhost,Ios,Json,Localhost,我正在尝试从本地主机获取json数据。我已经做过很多次了。但这一次,它不是在获取数据 Json数据 { "swimming_pool":"0", "security":"0", "lift":"0", "gym":"0", "reserved_parking":"0", "visitor_parking":"0", "power_backup":"0", "servant_room":"0", "tennis_cour

我正在尝试从本地主机获取json数据。我已经做过很多次了。但这一次,它不是在获取数据

Json数据

{ 
    "swimming_pool":"0", 
    "security":"0", 
    "lift":"0",
    "gym":"0",
    "reserved_parking":"0",
    "visitor_parking":"0",
    "power_backup":"0",
    "servant_room":"0",
    "tennis_court":"0",
    "rainwater_harvesting":"0",
    "waste_management":"0",
    "club_house":"0",
    "desc":"Dkkd",
    "city":"City",
    "pincode":"Pin Co",
    "locality":"locality",
    "no_of_beds":"1",
    "no_of_baths":"4"
}
客户端代码

 {
        NSString *selectQuery=[NSString stringWithFormat:@"http://localhost/FilterQuery.php?swimming_pool=%li&&security=%li&&lift=%li&&gym=%li&&visitor_parking=%li&&power_backup=%li&&servant_room=%li&&rainwater_harvesting=%li&&waste_management=%li&&clubhouse=%li&&Posdesc=%@&&no_of_baths=%li&&no_of_beds=%li&&pincode=%li&&locality=%@&&protypedesc=%@",(long)swimpoolb,(long)securityb,(long)liftb,(long)gymb,(long)visparkingb,(long)pbu,(long)servantroom,(long)rainwaterh,(long)wastemanagement,(long)clubHouse,possesion,(long)bathrooms,(long)bedrooms,(long)zipcode,locality,propertyType];

        NSString *newInsrStr = [selectQuery stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        NSData *dataaa=[NSData dataWithContentsOfURL:[NSURL URLWithString:newInsrStr]];
        NSString *rr=[[NSString alloc]initWithData:dataaa encoding:NSUTF8StringEncoding];
        NSLog(@"%@",rr);
        jsondataa=[NSJSONSerialization JSONObjectWithData:dataaa options:0 error:nil];
        //jsondataa is dictionary
        swimmingPool=@"";
        swimmingPool=[jsondataa objectForKey:@"swimming_pool"];
        security=@"";
        security=[jsondataa objectForKey:@"security"];
        lift=@"";
        lift=[jsondataa objectForKey:@"lift"];
        gym=@"";
        gym=[jsondataa objectForKey:@"gym"];
        reserved_parking=@"";
        reserved_parking=[jsondataa objectForKey:@"reserved_parking"];
        visitor_parking=@"";
        visitor_parking=[jsondataa objectForKey:@"visitor_parking"];
        power_backUp=@"";
        power_backUp=[jsondataa objectForKey:@"power_backup"];
        NSLog(@"%@,%@,%@,%@,%@,%@,%@",swimmingPool,security,lift,gym,reserved_parking,visitor_parking,power_backUp);
  }
输出:

2015-06-29 15:20:51.874 NexGV1[1684:60b]
通知: 未定义变量:中的网球场 /Applications/XAMPP/xamppfiles/htdocs/FilterQuery.php在线 21
{“游泳池”:“0”,“安全”:“0”,“电梯”:“0”,“健身房”:“0”,“预留停车场”:“0”,“访客停车场”:“0”,“电源备用”:“0”,“仆人室”:“0”,“网球场”:“0”,“雨水收集”:“0”,“废物管理”:“0”,“俱乐部之家”:“0”,“描述”:“Dkkd”,“城市”:“城市”,“pincode”:“Pin” Co,“地点”:“地点”,“无床”:“1”,“无浴池”:“4”} 2015-06-29 15:20:51.875 NexGV1[1684:60b] (零),(零),(零),(零),(零),(零),(零),(零),(零)


它显示空值。为什么?

这应该是一条评论,但评论太长了。

因此,您的方法是通过url进行json请求,它不适用于类似的情况,因为它令人困惑且难以阅读

我懒得检查那个很长的url,所以我将向您介绍这种方法

NSString *selectQuery=[NSString stringWithFormat:@"http://localhost/FilterQuery.php?swimming_pool=%li&&security=%li&&lift=%li&&gym=%li&&visitor_parking=%li&&power_backup=%li&&servant_room=%li&&rainwater_harvesting=%li&&waste_management=%li&&clubhouse=%li&&Posdesc=%@&&no_of_baths=%li&&no_of_beds=%li&&pincode=%li&&locality=%@&&protypedesc=%@",(long)swimpoolb,(long)securityb,(long)liftb,(long)gymb,(long)visparkingb,(long)pbu,(long)servantroom,(long)rainwaterh,(long)wastemanagement,(long)clubHouse,possesion,(long)bathrooms,(long)bedrooms,(long)zipcode,locality,propertyType];

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:selectQuery]];
您可以将该url转换为请求,然后使用下面的
NSURLConnection


此外,如果您喜欢使用上面的
NSURLConnection
发出请求的简单方式,也可以

- (NSURLRequest *)convertToRequest:(NSString *)stringURL withDictionary:(NSDictionary *)dictionary
{

    NSError *error = nil;

    NSData *JSONData = [NSJSONSerialization dataWithJSONObject:dictionary options:0 error:&error];

    NSURL *url = [NSURL URLWithString:stringURL];

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

    [request setHTTPMethod:@"POST"];
    [request setHTTPBody: JSONData];
    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Accept-Encoding"];

    [request setValue:[NSString stringWithFormat:@"%lu", (unsigned long)[JSONData length]] forHTTPHeaderField:@"Content-Length"];


    return request;
}
并且像这样使用它:

NSDictionary *jsonDictionary = @{
                                  @"swimming_pool": [NSNumber numberWithLong:(long)swimpoolb],
                                  @"security" : [NSNumber numberWithLong:(long)securityb],
                                  .. and so on
                                }; 
NSURLRequest *request = [ImplementationClass convertToRequest:YourServerURL withDictionary: jsonDictionary];
在服务器中,它应该是:

$handle = fopen('php://input','r');
$jsonInput = fgets($handle);
$json_decoded = json_decode($jsonInput,true);

$json_decoded['swimming_pool']; 
$json_decoded['security'];

希望这是信息和帮助

你可以使用AFNetworking,你可以很容易地从这个库中获取JSON数据。因为它给出了
NSLog(@“%@”,rr)的输出但jsondataa给出的是空值。@SukruK`使用
+(instancetype)dataWithContentsOfURL:(NSURL*)url选项:(NSDataReadingOptions)ReadOptions掩码错误:(NSError**)errorPtr
并将错误对象传递给该方法,以便查看是否得到响应。同时检查您的本地服务器是否正在运行。@BhupeshKumar如果您转到
http://localhost/FilterQuery.php
您应该能够看到它是否正在运行。我检查了它,它正在运行。@sbarow
$handle = fopen('php://input','r');
$jsonInput = fgets($handle);
$json_decoded = json_decode($jsonInput,true);

$json_decoded['swimming_pool']; 
$json_decoded['security'];