2013-05-19 45 views
0

这个问题不完全是一个编程问题。我有要求显示图片的JSON输出。我知道json_encode()的用法,但问题是我没有得到如何逻辑我会显示这些细节。PHP中表格的JSON输出

我得到的输出是:

{"name":"ZXY","success":1,"subjects":["DIGITAL COMMUNICATION TECHNIQUE(2012-13)","DIGITAL SIGNAL PROCESSING(2012-13)","ANTENNAS AND WAVE PROPAGATION(2012-13)","DIGITAL SWITCHING THEORY AND NETWORKS(2012-13)","ACCOUNTING FOR MANAGERS(2012-13)","DIGITAL COMMUNICATION TECHNIQUE LAB(2012-13)","DIGITAL SIGNAL PROCESSING LAB(2012-13)"]} 

Pic showing the details

请告诉我什么都可以的我有细节的有效JSON输出,

编辑:我得从MySQL数据输出JSON。我在图片中提供的学生的示例数据。我已经显示的JSON是PHP页面的结果,我不满意我得到的JSON输出。我正在寻求一种更好的方式来以JSON格式有效地表示数据。

这是我为获取JSON输出而编写的PHP代码。

<?php 

$regno = $_GET['regno']; 

$host = 'localhost'; 
$user = 'root'; 
$password = ''; 
$database = 'android_app_details'; 
$dbc = mysqli_connect($host,$user,$password,$database) 
    or die('Error in connecting the database'); 


$query = 

    "SELECT SD.REGNO, STD.FNAME, STD.MNAME, STD.LNAME, SD.SUBJECT_NAME, AD.PRESENT_COUNT, AD.TOTAL_COUNT ". 
    "FROM ATTENDANCE_DETAILS AS AD, SUBJECT_DETAILS AS SD, STUDENT_DETAILS STD ". 
    "WHERE AD.ENROLLMENT_ID = SD.ENROLLMENT_ID ". 
    "AND SD.REGNO = '".$regno."' ". 
    "AND AD.BATCH_SUBJECT_ID = SD.BATCH_SUBJECT_ID ". 
    "AND SD.STUDENT_ID = STD.STUDENT_ID "; 

$result = mysqli_query($dbc, $query) 
    or die('Error in query'); 

$subject = Array(); 
$att = Array(); 
$total = Array(); 
$i = 0; 
$success = 0; 


while($row = mysqli_fetch_array($result)){ 
    if($row['MNAME']) 
     $name = $row['FNAME'].' '.$row['MNAME'].' '.$row['LNAME']; 
    else 
     $name = $row['FNAME'].' '.$row['LNAME']; 
    $subject[$i] = $row['SUBJECT_NAME']; 
    $i++; 
    $success = 1; 
} 

if($success) 
    $response = array(
     "name" => $name, 
     "success" => $success, 
     "subjects" => $subject 
    ); 
else 
    $response = array(
     "success" => $success 
    ); 
echo json_encode($response); 
?> 
+0

发表一些代码。 – Yogus

+0

您当前的JSON输出究竟有什么问题? – Onheiron

+0

那么,首先,主体没有任何'标记名',因此访问它们将会很困难.. – NewUser

回答

1

您输出的格式良好的JSON(如json_encode函数所预期的那样)。

从你的意见,我看到什么故意你是subjects:[...]数组,你第二无效,但它是。

什么JSON,以及XML结构化数据格式都是关于为结构化数据后者持有其定义都结构数据所以如果你有:

{object: 
    {subobject:{subobjectName:"Penny"} 
} 

您将有一个结构这是所有的object->subobject->subobjectName三和一些数据这是"Penny"

现在,我们可以看到一个JSON阵列作为集合具有相同的标记名实体,例如像这样:

{object:{ 
    subobjects:[ 
     {subobjectName:"Penny",subobjectLasName:"Rose"}, 
     {subobjectName:"Lewis",subobjectLasName:"Armstrong"}, 
     ... 
    ] 
}} 

这将有{}s你要找的,但如果你请看结构/数据这最后一个数组是结构数组(对象),所以它的元素是JSON对象。

你有你的贴JSON输出什么是阵列数据(弦乐),这不是结构元素,并且没有任何特定的标记名比subjecs其他的。

如果你熟悉XML,这应该是比较容易理解:

<student> 

    <name>Penny</name> 
    <last_name>Rose</last_name> 
    <subjects>Subject1</subjects> 
    <subjects>Subject2</subjects> 
    <subjects>Subject3</subjects> 

</student> 

这上面是一个有效的XML和你在你的输出有什么样的一些JSON转换,这是因为这些Subject1, Subject2, Subject3文本实体没有任何父标记名,但是subjects这是一个包含纯文本名称相同的标记数组。

我知道这并不回答你的问题,但我希望它清除你所得到的输出的dubts。