2014-02-18 169 views
-4

我是PHP編程新手, 我需要解析json字符串。 這是字符串我有什麼作爲JSON陣列PHP Json解析器

[{"datetime":"17/02/2014 13:18:30","type":"testtype","locationid":"1","GPSType":"GOOGLE","GPSLatitude":"1.1","GPSLongtitude":"1.2","userid":"admin","brand":"1234567","numbers":["num1","num2","num3]}] 

在上面的字符串我只需要解析數字陣列。

+0

用['json_decode()'](http://php.net/json_decode) - 但要確保JSON字符串是有效的,否則它會返回NULL。您在問題中使用的JSON字符串是***不是有效的(因爲您可以使用http://jsonlint.com等在線驗證器進行驗證) –

+0

使用'json_decode()'。 –

+0

如果我只是[搜索](https://duckduckgo.com/?q=parse+json+with+php),那麼適當的PHP [文檔](http://php.net/manual/en/function.json -decode.php)是第一個命中。 – Quentin

回答

-1

正如其他人在評論中提到的那樣,請使用json_decode

http://www.php.net/manual/en/function.json-decode.php

[編輯]

爲了只得到"numbers"陣列,只是試試這個:

$json = json_decode($input, true); 
$numbers = $json[0]["numbers"]; 

json_decode功能將您的JSON字符串轉換爲一個關聯數組,從你可以得到你需要的索引。

+0

請[避免鏈接只答案](http://meta.stackoverflow.com/tags/link-only-answers/info)。答案是「僅僅是一個外部網站的鏈接」[可能會被刪除](http://stackoverflow.com/help/deleted-answers) – Quentin

+0

請閱讀答案的前半部分,問問自己:這是一個「只有鏈接的答案」? – mingos

+0

「幾乎不超過」 – Quentin

0

我希望你的PHP代碼中有JSON字符串。 您的JSON字符串中存在錯誤。 由於您將JSON字符串作爲數組維護,因此可以採用這種方法。 你可以很容易理解這一點。

<?php 
    $json = '[ 
       { 
        "datetime": "17/02/2014 13:18:30", 
        "type": "testtype", 
        "locationid": "1", 
        "GPSType": "GOOGLE", 
        "GPSLatitude": "1.1", 
        "GPSLongtitude": "1.2", 
        "userid": "admin", 
        "brand": "1234567", 
        "numbers": ["num1", "num2", "num3"] 
       } 
      ]'; 

    $obj = json_decode($json); 
    $len = count($obj[0]->{'numbers'}); 
    for($i = 0; $i < $len; $i++) { 
     echo $obj[0]->{'numbers'}[$i].'<br>'; 
    } 
    ?> 

輸出將是:

NUM1
NUM2
NUM3