如何解码JSON字符串以获取单个属性

时间:2016-04-14 08:47:22

标签: php

字符串看起来像这样。

string(202) 
"{"_id":"2","_rev":"2-2251dd9912477d8a2b91c6fd5ce62faf","_attachments":{"creativecommons.pdf":{"content_type":"text/pdf","revpos":2,"digest":"md5-AyV8c76dsfqfGF1BBdQIIw==","length":280357,"stub":true}}} ` 

我想preg_match_all是一种方法,但我还不知道它的语法。 Maby还有另一种方式。一些帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您的字符串是JSON字符串。 “Prettified”它看起来像这样:

{
    "_id": "2",
    "_rev": "2-2251dd9912477d8a2b91c6fd5ce62faf",
    "_attachments": {
        "creativecommons.pdf": {
            "content_type": "text/pdf",
            "revpos": 2,
            "digest": "md5-AyV8c76dsfqfGF1BBdQIIw==",
            "length": 280357,
            "stub": true
        }
    }
}

您可以使用json_decode($JSONstring, true);使其成为多维数组:

$decoded = json_decode($JSONstring, true);
$myLengthValue = $decoded['_attachments']['creativecommons.pdf']['length'];
echo $myLengthValue; //Returns 280357

答案 1 :(得分:-1)

preg_match应该这样做

语法为preg_match('/length":(.*),/', $string, $array);

preg_match会将结果放入数组中,所以在这种情况下:

$array[0]应为'length':280357,;',

$array[1]应为'280357'