PHP читает неверный json с помощью json_decode ();
У меня есть неверные внешние данные JSON, без двойных кавычек вокруг имен.
Пример:
{
data: [
{
idx: 0,
id: "0",
url: "http://247wallst.com/",
a: [
{
t: "Title",
u: "http://247wallst.com/2012/07/30/",
sp: "About"
}
],
doc_id: "9386093612452939480"
},
{
idx: 1,
id: "-1"
}
],
results_per_page: 10,
total_number_of_news: 76,
news_per_month: [20, 0, 8, 1, 1, 2, 0, 2, 1, 0, 0, 1, 1, 0, 5, 1, 1, 1, 0, 2, 5, 16, 7, 1],
result_start_num: 2,
result_end_num: 2,
result_total_articles: 76
}
Как вы видите, многие имена, такие как data, idx, id, url и другие, не заключаются в двойные кавычки, поэтому это делает json недействительным. Как я могу сделать этот внешний JSON действительным? Я уже пробовал str_replace, заменив & apos; {& apos; на "{"; " и ':' to "": " добавление двойных кавычек вокруг имен без кавычек, но это приводит к путанице в некоторых уже двойных кавычках.
Как я могу сделать этот json действительным, чтобы я мог читать эти данные с помощью PHP json_decode? Я не очень знаком с preg_replace ...
Действительный JSON будет выглядеть так:
{
"data": [
{
"idx": 0,
"id": "0",
"url": "http://247wallst.com/",
"a": [
{
"t": "Title",
"u": "http://247wallst.com/2012/07/30/",
"sp": "About"
}
],
"doc_id": "9386093612452939480"
},
{
"idx": 1,
"id": "-1"
}
],
"results_per_page": 10,
"total_number_of_news": 76,
"news_per_month": [20, 0, 8, 1, 1, 2, 0, 2, 1, 0, 0, 1, 1, 0, 5, 1, 1, 1, 0, 2, 5, 16, 7, 1],
"result_start_num": 2,
"result_end_num": 2,
"result_total_articles": 76
}
Пожалуйста, предложите мне функцию php preg_replace.
Источник данных: http://www.google.com/finance/company_news?q=aapl&output=json&start=1&num=1