2016-03-30 33 views
-2

我的期望的输出如何制作这样的JSON输出?

{"rowcount":4 
[{"provider_id":"1","provider_name":"Crecent Computers","sub_name":["Hardware","Software","Networks"]}],[{"provider_id":"4","provider_name":"Testing Co. LLC","sub_name":["Hardware","Software","Networks"]}],[{"provider_id":"41","provider_name":"Itiology","sub_name":["Hardware","Software","Networks","All IT Services"]}],[{"provider_id":"42","provider_name":"ITiology","sub_name":["Hardware","Software","Networks","All IT Services","Website Design "]}]} 

我所需的输出端

我当前JSON输出

{"rowcount":4,"0":[{"provider_id":"1","provider_name":"Crecent Computers","sub_name":["Hardware","Software","Networks"]}],"1":[{"provider_id":"4","provider_name":"Testing Co. LLC","sub_name":["Hardware","Software","Networks"]}],"2":[{"provider_id":"41","provider_name":"Itiology","sub_name":["Hardware","Software","Networks","All IT Services"]}],"3":[{"provider_id":"42","provider_name":"ITiology","sub_name":["Hardware","Software","Networks","All IT Services","Website Design "]}]} 

JSON输出端

PHP代码

$result = mysqli_query($con, "select * from service_provider where servicecategory_id = '1'"); 


if ($counter = mysqli_query($con, "select * from service_provider where servicecategory_id = '1'")) 
{ 
    // Return the number of rows in result set 
    $rowcount=mysqli_num_rows($counter); 

    // Free result set 
    mysqli_free_result($counter); 
} 

$data_points = array(); 
$subcatArray = array(); 

$data_points["rowcount"] = $rowcount; 

while($row = mysqli_fetch_assoc($result)) 
{ 

    $subcatresult = mysqli_query($con, "SELECT sub_name, price FROM sub_services WHERE provider_id = " . $row['provider_id']); 
    while($subcatrow = mysqli_fetch_assoc( $subcatresult)) 
    { 
     $subcatArray[] = $subcatrow['sub_name']; 
     unset($subcatrow); 
     $subcatrow = array(); 
    } 


    $data_points[][] = [ 
     'provider_id' => $row['provider_id'], 
     'provider_name' => $row['provider_name'], 
     'sub_name' => $subcatArray 
    ]; 

    // array_push("totalRow",$data_points, $point); 
} 


echo json_encode($data_points); 

PHP代码END

+2

你需要JSON实际上并不有效。你应该添加一个像'providers'这样的密钥并将嵌套数组放入其中。请编辑你的问题。 – ehsan88

回答

0

你所需的输出JSON是无效的JSON。你可以检查这个json的有效或不在http://jsonviewer.stack.hu。 JSON或XML有它自己的模式。

+0

明白了。谢谢。 –

+0

欢迎你! – codekman

0

所以我发现我所需的输出是无效的。对不起,我是PHP新手。

我删除了这条线

$data_points["rowcount"] = $rowcount; 

并取得该

$data_points[][] = [ 
     'provider_id' => $row['provider_id'], 
     'provider_name' => $row['provider_name'], 
     'sub_name' => $subcatArray 
    ]; 

这个

$data_points["Rows"][] = [ 
     'provider_id' => $row['provider_id'], 
     'provider_name' => $row['provider_name'], 
     'sub_name' => $subcatArray 
    ]; 

我得到的输出非常接近我所需要的。多谢你们!