2016-06-01 3 views
0

diese die Probe json Datenwie ein json Daten und Anzeige in tabellarischer Form in PHP #php parsen

{"user":{ 
     "age":22, 
     "avatar":"https://static0.fitbit.com/images/profile/defaultProfile_100_male.gif", 
     "avatar150":"https://static0.fitbit.com/images/profile/defaultProfile_150_male.gif", 
     "averageDailySteps":0, 
     "corporate":false, 
     "dateOfBirth":"1993-08-03", 
     "displayName":"nnwin", 
     "distanceUnit":"METRIC", 
     "encodedId":"4N9GR6", 
     "features":{"exerciseGoal":true}, 
     "foodsLocale":"en_GB", 
     "fullName":"nnwin", 
     "gender":"MALE", 
     "glucoseUnit":"METRIC", 
     "height":176, 
     "heightUnit":"METRIC", 
     "locale":"en_GB", 
     "memberSince":"2016-05-25", 
     "nickname":"nveeen", 
     "offsetFromUTCMillis":19800000, 
     "startDayOfWeek":"MONDAY", 
     "strideLengthRunning":91.60000000000001, 
     "strideLengthRunningType":"default", 
     "strideLengthWalking":73, 
     "strideLengthWalkingType":"default", 
     "timezone":"Asia/Kolkata","topBadges":[], 
     "waterUnit":"METRIC", 
     "waterUnitName":"ml", 
     "weight":104, 
     "weightUnit":"METRIC" 
    } 
} 
+0

Verwendung 'json_decode' und Schleife ... –

Antwort

1

Decode die json und foreach Schleife verwenden.

Sie müssen die json_decode für das Erhalten des Arrays verwenden, nachdem das Array, die Sie brauchen Schleife zu verwenden (foreach oder andere ..) alle Mitglieder des Arrays zuzugreifen. Sie können direkt auf die Member/Werte dieses Arrays zugreifen.

$json = '{"user":{"age":22,"avatar":"https://static0.fitbit.com/images/profile/defaultProfile_100_male.gif","avatar150":"https://static0.fitbit.com/images/profile/defaultProfile_150_male.gif","averageDailySteps":0,"corporate":false,"dateOfBirth":"1993-08-03","displayName":"nnwin","distanceUnit":"METRIC","encodedId":"4N9GR6","features":{"exerciseGoal":true},"foodsLocale":"en_GB","fullName":"nnwin","gender":"MALE","glucoseUnit":"METRIC","height":176,"heightUnit":"METRIC","locale":"en_GB","memberSince":"2016-05-25","nickname":"nveeen","offsetFromUTCMillis":19800000,"startDayOfWeek":"MONDAY","strideLengthRunning":91.60000000000001,"strideLengthRunningType":"default","strideLengthWalking":73,"strideLengthWalkingType":"default","timezone":"Asia/Kolkata","topBadges":[],"waterUnit":"METRIC","waterUnitName":"ml","weight":104,"weightUnit":"METRIC"}}'; 
$result = json_decode ($json); 

Das Ergebnis Objekt sieht wie folgt aus:

stdClass Object 
(
    [user] => stdClass Object 
     (
      [age] => 22 
      [avatar] => https://static0.fitbit.com/images/profile/defaultProfile_100_male.gif 
      [avatar150] => https://static0.fitbit.com/images/profile/defaultProfile_150_male.gif 
      [averageDailySteps] => 0 
      [corporate] => 
      [dateOfBirth] => 1993-08-03 
      [displayName] => nnwin 
      [distanceUnit] => METRIC 
      [encodedId] => 4N9GR6 
      [features] => stdClass Object 
       (
        [exerciseGoal] => 1 
       ) 

      [foodsLocale] => en_GB 
      [fullName] => nnwin 
      [gender] => MALE 
      [glucoseUnit] => METRIC 
      [height] => 176 
      [heightUnit] => METRIC 
      [locale] => en_GB 
      [memberSince] => 2016-05-25 
      [nickname] => nveeen 
      [offsetFromUTCMillis] => 19800000 
      [startDayOfWeek] => MONDAY 
      [strideLengthRunning] => 91.6 
      [strideLengthRunningType] => default 
      [strideLengthWalking] => 73 
      [strideLengthWalkingType] => default 
      [timezone] => Asia/Kolkata 
      [topBadges] => Array 
       (
       ) 

      [waterUnit] => METRIC 
      [waterUnitName] => ml 
      [weight] => 104 
      [weightUnit] => METRIC 
     ) 

) 

Sieht aus wie Ihr Ergebnis Array ein Objekt ist, so dass Sie -> für den Zugriff auf die Array-Elemente verwenden müssen.

foreach($result as $val){ 
    //what ever you want 
} 

@RiggsFolly, macht eine klare Sicht auf diese Frage.

Bitte zögern Sie nicht, mich zu klopfen, wenn weitere Hilfe benötigt wird.

0

PHP bietet eine praktische Funktion, um ein JSON-Zeichenfolge in die äquivalent PHP-Datentypen json_decode() zum Umwandeln

Also mit, dass und print_r() Sie ähnliche

den Inhalt des JSON-String identifizieren können
<?php 
$str = '{"user":{ 
     "age":22, 
     "avatar":"https://static0.fitbit.com/images/profile/defaultProfile_100_male.gif", 
     "avatar150":"https://static0.fitbit.com/images/profile/defaultProfile_150_male.gif", 
     "averageDailySteps":0, 
     "corporate":false, 
     "dateOfBirth":"1993-08-03", 
     "displayName":"nnwin", 
     "distanceUnit":"METRIC", 
     "encodedId":"4N9GR6", 
     "features":{"exerciseGoal":true}, 
     "foodsLocale":"en_GB", 
     "fullName":"nnwin", 
     "gender":"MALE", 
     "glucoseUnit":"METRIC", 
     "height":176, 
     "heightUnit":"METRIC", 
     "locale":"en_GB", 
     "memberSince":"2016-05-25", 
     "nickname":"nveeen", 
     "offsetFromUTCMillis":19800000, 
     "startDayOfWeek":"MONDAY", 
     "strideLengthRunning":91.60000000000001, 
     "strideLengthRunningType":"default", 
     "strideLengthWalking":73, 
     "strideLengthWalkingType":"default", 
     "timezone":"Asia/Kolkata","topBadges":[], 
     "waterUnit":"METRIC", 
     "waterUnitName":"ml", 
     "weight":104, 
     "weightUnit":"METRIC" 
    } 
}'; 

$obj = json_decode($str); 

print_r($obj); 

ERGEBNISSE genannt :

stdClass Object 
(
    [user] => stdClass Object 
     (
      [age] => 22 
      [avatar] => https://static0.fitbit.com/images/profile/defaultProfile_100_male.gif 
      [avatar150] => https://static0.fitbit.com/images/profile/defaultProfile_150_male.gif 
      [averageDailySteps] => 0 
      [corporate] => 
      [dateOfBirth] => 1993-08-03 
      [displayName] => nnwin 
      [distanceUnit] => METRIC 
      [encodedId] => 4N9GR6 
      [features] => stdClass Object 
       (
        [exerciseGoal] => 1 
       ) 

      [foodsLocale] => en_GB 
      [fullName] => nnwin 
      [gender] => MALE 
      [glucoseUnit] => METRIC 
      [height] => 176 
      [heightUnit] => METRIC 
      [locale] => en_GB 
      [memberSince] => 2016-05-25 
      [nickname] => nveeen 
      [offsetFromUTCMillis] => 19800000 
      [startDayOfWeek] => MONDAY 
      [strideLengthRunning] => 91.6 
      [strideLengthRunningType] => default 
      [strideLengthWalking] => 73 
      [strideLengthWalkingType] => default 
      [timezone] => Asia/Kolkata 
      [topBadges] => Array 
       (
       ) 

      [waterUnit] => METRIC 
      [waterUnitName] => ml 
      [weight] => 104 
      [weightUnit] => METRIC 
     ) 

) 

Jetzt wissen, die Struktur der Daten können Sie einzelne Elemente, die Sie auswählen u wollen wie folgt aus:

<?php 
echo $obj->user->age;   // 22 
echo $obj->user->dateOfBirth // 1993-08-03 

Oder Sie Schleife über die Struktur gesamten Daten mit Standard-PHP wie dies kann natürlich für Objekte und Arrays Blick, die innerhalb des äußeren Objekt vorhanden:

foreach ($obj->user as $name => $value) { 
    if ($name == 'features') { 
     foreach ($obj->user->features as $n => $v) { 
      echo sprintf("<td>%s</td><td>%s</td>\n", $n, $v); 
     } 
    } elseif ($name == 'topBadges') { 
     foreach ($obj->user->features as $n => $v) { 
      echo sprintf("<td>%s</td><td>%s</td>", $n, $v); 
     } 
    } else { 
     echo sprintf("<td>%s</td><td>%s</td>\n", $name, $value); 
    } 
} 

Die Ergebnis dieses wäre

<td>age</td><td>22</td> 
<td>avatar</td><td>https://static0.fitbit.com/images/profile/defaultProfile_100_male.gif</td> 
<td>avatar150</td><td>https://static0.fitbit.com/images/profile/defaultProfile_150_male.gif</td> 
<td>averageDailySteps</td><td>0</td> 
<td>corporate</td><td></td> 
<td>dateOfBirth</td><td>1993-08-03</td> 
<td>displayName</td><td>nnwin</td> 
<td>distanceUnit</td><td>METRIC</td> 
<td>encodedId</td><td>4N9GR6</td> 
<td>exerciseGoal</td><td>1</td> 
<td>foodsLocale</td><td>en_GB</td> 
<td>fullName</td><td>nnwin</td> 
<td>gender</td><td>MALE</td> 
<td>glucoseUnit</td><td>METRIC</td> 
<td>height</td><td>176</td> 
<td>heightUnit</td><td>METRIC</td> 
<td>locale</td><td>en_GB</td> 
<td>memberSince</td><td>2016-05-25</td> 
<td>nickname</td><td>nveeen</td> 
<td>offsetFromUTCMillis</td><td>19800000</td> 
<td>startDayOfWeek</td><td>MONDAY</td> 
<td>strideLengthRunning</td><td>91.6</td> 
<td>strideLengthRunningType</td><td>default</td> 
<td>strideLengthWalking</td><td>73</td> 
<td>strideLengthWalkingType</td><td>default</td> 
<td>timezone</td><td>Asia/Kolkata</td> 
<td>exerciseGoal</td><td>1</td> 
<td>waterUnit</td><td>METRIC</td> 
<td>waterUnitName</td><td>ml</td> 
<td>weight</td><td>104</td> 
<td>weightUnit</td><td>METRIC</td> 
+0

Sir, ich bereits eine Antwort auf diese Frage ähnlich zu Ihrem Beitrag machen, da ich weiß, dass die Stapel Nutzer gegenseitig unterstützt, Aber ich sehe, dass du auch eine andere Antwort machst. –

+0

Eine andere Antwort? Was meinen Sie? – RiggsFolly

+0

Ich meine Sie machen Ihre eigene Antwort –