0

我在将以下 xAPI 字符串解析为数组时遇到问题。问题是 parse_str() 和 parse_url() 都解析 [content] ... 中包含的引号内的 URL,这会破坏 JSON 格式。

Authorization=Basic YmV0b1234XZlddle9ighrXRvc3VhdmVwY999929yZA==&Content-Type=application/json&X-Experience-API-Version=1.0.0&statementId=ef0ca1d6-1234-4e02-b403-7d4aab0df62c&content={"verb":{"id":"http://adlnet.gov/expapi/verbs/experienced"},"object":{"id":"http://mytest.myfavsite.com/?post_type=gb_xapi_content&p=52&preview=true/6lgIX5Hxep0","definition":{"name":{"und":"SpecificStatement"},"description":{"und":"SpecificStatement"},"type":"http://adlnet.gov/expapi/activities/module"},"objectType":"Activity"},"context":{"contextActivities":{"grouping":{"id":"http://mytest.myfavsite.com/?post_type=gb_xapi_content&p=52&preview=true"},"parent":{"id":"http://mytest.myfavsite.com/?post_type=gb_xapi_content&p=52&preview=true"}},"registration":"36fc1ee0-2849-1234-b697-71cd4cad1b6e"},"version":"1.0.0","actor":{"mbox":"mailto:betosuave@home.tld","name":"beto","objectType":"Agent"}}

我想要结束的是在 [content] 数组元素中具有完整 JSON 字符串的元素数组。

是否有像 parse_str() 那样解析字符串的方法...同时忽略 JSON 元素引号内的任何内容 - 例如, {"id":"http://mytest.myfavsite.com/?post_type=gb_xapi_content&p=52&preview=true"}

提前感谢您的任何想法。

4

2 回答 2

0

这个问题很有趣。

虽然会寻找一个干净的解决方案,但您当然可以以粗鲁、老式的方式尝试:

json_decode( substr( $str, strpos( $yourString, '&content=' )+9 ) )

这很好用!

于 2016-02-03T00:41:01.007 回答
0

先尝试json_decode($string)然后parse_str()在选定元素上运行。

于 2016-02-03T00:34:21.113 回答