簡體   English   中英

正則表達式提取php中的json響應

[英]Regular expression to extract json response in php

我是php的新手,正在嘗試使用preg_match編寫正則表達式以提取從http get獲取的href值。 響應看起來:

{"_links":{"http://a.b.co/documents":{"href":"/docs"}}}

我只想提取href值並將其傳遞給下一個api ...即/ docs。 誰能告訴我該如何提取? 我一直在使用http://www.solmetra.com/scripts/regex/index.php來測試我的regex ..從上一天開始就沒有運氣:(

請任何幫助將不勝感激。

謝謝,博士

無需正則表達式。

使用json_decode() ,然后訪問href屬性。

例如:

$data = json_decode('{"_links":{"http://a.b.co/documents":{"href":"/docs"}}}', true);
echo $data['_links']['http://a.b.co/documents']['href'];

注意:如果可能,我鼓勵您清理JSON。 特別是按鍵。

不要使用正則表達式,請使用json_decode() JSON是無上下文語法的一個很好的例子,您甚至不應該嘗試使用正則表達式進行解析。

這是關於使用json_decode()進行此類操作的PHP.NET 參考

就像HTML解析一樣,我建議不要使用REGEX而是使用json解析器然后讀取值。 在php中查看json_encode和json_decode函數。

就是說,如果您只需要href值,則可以使用正則表達式在給出的示例中執行此操作

preg_match('/"href":"([^"]+)"/',$string,$matches);
$matches[1];// this is the href

當您確切地知道所需的內容以及格式時,Regex才是正確的工具。通常無法准確預測來自其他方的json和HTML。 也有某些合法的HTML和json的示例,無法使用regex進行正確的解析,因此通常使用專用的解析器對其進行解析。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM