我一直在寻找,但找不到解决这个问题的方法。我有以下JSON:
{
"success": true,
"outputScenario": "Informacion Inmuebles",
"data": {
"inmueble": [
{
"titulo": [
"Venta casa Villa liliana sur de Armenia"
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 160 m2 , 4 alcobas y 2 baños "
],
"precio": [
"$140.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b49742320160714114235.jpg"
],
"referencia": [
199414
]
},
{
"titulo": [
"Casa 5 alcobas area 110m2 sector Colegio CASD"
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 110 m2 , 5 alcobas y 3 baños "
],
"precio": [
"$140.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b42241220160714111955.jpeg"
],
"referencia": [
199395
]
},
{
"titulo": [
"CASA EN ARCADEZ"
],
"descripcion": [
"Casa para vender en Armenia, Quindío , 3 alcobas y 1 baños "
],
"precio": [
"$85.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b2160620160714095012.jpg"
],
"referencia": [
199341
]
},
{
"titulo": [
"CASA EN BOSQUES DE PINARES"
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 60 m2 , 2 alcobas y 1 baños "
],
"precio": [
"$70.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b2160120160714094050.jpg"
],
"referencia": [
199328
]
},
{
"titulo": [
"CASA EN LA BRASILIA NUEVA"
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 58,35 m2 , 3 alcobas y 1 baños "
],
"precio": [
"$75.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b2160820160714091008.jpg"
],
"referencia": [
199313
]
},
{
"titulo": [
"CASA CONJUNTO CERRADO AL NORTE"
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 150 m2 , 4 alcobas y 2 baños "
],
"precio": [
"$350.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b2160920160714083544.jpg"
],
"referencia": [
199302
]
},
{
"titulo": [
"VENTA DE CASA EN MERCEDES DEL NORTE DE ARMENIA"
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 72 m2 , 2 alcobas y 1 baños "
],
"precio": [
"$100.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b4651320160713070958.jpg"
],
"referencia": [
199254
]
},
{
"titulo": [
"CASA SECTOR LA GRESIA, TRIFAMILIAR 125M2, HERMOSA."
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 125 m2 , 5 alcobas y 4 baños "
],
"precio": [
"$150.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b4119120160713023016.jpg"
],
"referencia": [
199070
]
},
{
"titulo": [
"Venta casa Villa Liliana sur de Armenia"
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 71 m2 , 3 alcobas y 3 baños "
],
"precio": [
"$120.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b4974620160713120208.jpg"
],
"referencia": [
198965
]
},
{
"titulo": [
"VENTA DE CASA AL SUR DE ARMENIA"
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 79 m2 , 4 alcobas y 2 baños "
],
"precio": [
"$95.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b875720160713111033.jpg"
],
"referencia": [
198929
]
},
{
"titulo": [
"VENTA DE CASA EN EL NORTE DE ARMENIA"
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 154 m2 , 4 alcobas y 3 baños "
],
"precio": [
"$310.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b46512920160712093023.jpg"
],
"referencia": [
198751
]
},
{
"titulo": [
"VENTA CASA ARMENIA"
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 110 m2 , 3 alcobas y 2 baños "
],
"precio": [
"$185.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b831820160712054648.jpg"
],
"referencia": [
198686
]
},
{
"titulo": [
"VENTA DE CASA EN BOGOTA"
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 191 m2 , 5 alcobas y 3 baños "
],
"precio": [
"$280.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b8751020160712032609.jpg"
],
"referencia": [
198628
]
},
{
"titulo": [
"CASA SEMI CAMPESTRE EN ARMENIA ZONA NORTE"
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 125 m2 , 3 alcobas y 3 baños "
],
"precio": [
"$260.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b41192620160712040422.jpg"
],
"referencia": [
198594
]
},
{
"titulo": [
"Barrio El Recreo "
],
"descripcion": [
"Casa para vender en Armenia, Quindío , 4 alcobas y 3 baños "
],
"precio": [
"$190.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b2470420160712033152.jpg"
],
"referencia": [
198587
]
},
{
"titulo": [
"VENTA CASA EN EL NORTE DE ARMENIA"
],
"descripcion": [
"Casa para vender en Armenia, Quindío , 3 alcobas y 3 baños "
],
"precio": [
"$320.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/loscompradores/images/noimagelc.png"
],
"referencia": [
198578
]
},
{
"titulo": [
"Venta Casas Rio Claro en Armenia, Quindio"
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 63,79 m2 "
],
"precio": [
"Consultar"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b80251620160712031258.png"
],
"referencia": [
198577
]
},
{
"titulo": [
"Casa en venta sector Norte Nueva Cecilia"
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 189 m2 , 3 alcobas y 3 baños "
],
"precio": [
"$350.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b63892220160712025826.jpg"
],
"referencia": [
198574
]
},
{
"titulo": [
"Casa en condominio"
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 245 m2 , 3 alcobas y 3 baños "
],
"precio": [
"$520.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b658320160712024747.jpg"
],
"referencia": [
198569
]
},
{
"titulo": [
"Barrio Versalles Calarca "
],
"descripcion": [
"Casa para vender en Armenia, Quindío, con área de 224 m2 , 6 alcobas y 1 baños "
],
"precio": [
"$250.000.000"
],
"moneda": [
"Pesos Colombianos"
],
"imagen": [
"https://images.wasi.co/inmuebles/b2470620160712122415.jpg"
],
"referencia": [
198491
]
}
]
},
"stateToken": "eyJqYXIiOnsidmVyc2lvbiI6InRvdWdoLWNvb2tpZUAyLjIuMiIsInN0b3JlVHlwZSI6Ik1lbW9yeUNvb2tpZVN0b3JlIiwicmVqZWN0UHVibGljU3VmZml4ZXMiOnRydWUsImNvb2tpZXMiOlt7ImtleSI6IlBIUFNFU1NJRCIsInZhbHVlIjoiY2xkdm82aDFzc2pycjFyNnAyZmxwYzNpMjMiLCJleHBpcmVzIjoiMjAxNi0wNy0yMVQxODoyODo0NC4wMDBaIiwibWF4QWdlIjo2MDQ4MDAsImRvbWFpbiI6Ind3dy5sb3Njb21wcmFkb3Jlcy5jb20iLCJwYXRoIjoiLyIsImhvc3RPbmx5Ijp0cnVlLCJjcmVhdGlvbiI6IjIwMTYtMDctMTRUMTg6Mjg6NDQuMzQxWiIsImxhc3RBY2Nlc3NlZCI6IjIwMTYtMDctMTRUMTg6Mjg6NDQuMzQxWiJ9XX0sInZlcnNpb24iOjF9"
}
我用于循环数据的PHP代码如下:
<?php
$C = urlencode($_GET['ciudad']);
$T = $_GET['tipo'];
$N = $_GET['negocio'];
$search = "http://url.com/buscar/0.0.3?&q=&qc=&ciudad=".$C."&tipo_inmueble=".$T."&tipo_negocio=".$N."&alcobas=0&banios=0&precio=0";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $search);
$result=curl_exec($ch);
$search_results = json_decode($result,true);
?>
<?php
foreach(array_slice($search_results['data']['inmueble'],0,5) as $result):
$titulo = $result["titulo"];
$descripcion = $result["descripcion"];
$precio = $result["precio"];
$moneda = $result["moneda"];
$imagen = $result["imagen"];
$referencia = $result["referencia"];
?>
<?php $var = $titulo; if (empty($var)) { echo ''; } if (isset($var)) { echo $titulo; }?>
<?php endforeach; ?>
但是这不起作用,我不知道问题是关于JSON上的括号,因为我使用相同的代码来循环不同的JSON源并且它可以工作。
array_slice
给出的错误如下:
警告:array_slice()期望参数1为数组,null中给出null 第20行/buscar.php警告:提供的参数无效 第20行/buscar.php中的foreach()给出了这个错误。
删除array_slice
错误是:
警告:在/buscar.php中为foreach()提供的参数无效 第20行
var_dump($search_results);
显示:
NULL
答案 0 :(得分:2)
json_decode()返回null,这是因为它是无效的json
检查
您的回复是数组,
更改
TOKEN(character_expression, delimiter_string, occurrence)
到
$titulo = $result["titulo"];
其他它可以在我的系统上运行
$titulo = $result["titulo"][0];
给我
<?php
$result=file_get_contents('json.txt');
$search_results = json_decode($result,true);
?>
<?php
foreach(array_slice($search_results['data']['inmueble'],0,5) as $result):
$titulo = $result["titulo"][0];
$descripcion = $result["descripcion"][0];
$precio = $result["precio"][0];
$moneda = $result["moneda"][0];
$imagen = $result["imagen"][0];
$referencia = $result["referencia"][0];
?>
<?php $var = $titulo; if (empty($var)) { echo ''; } if (isset($var)) { echo $titulo; }?>
<?php endforeach; ?>