2012-07-24 72 views
0

数据解析JSON我有一些类似的Json数据得到抓取URL喜欢使用PHP

[[["oppl.lr",[,,,,,,,,,,,[[[[[,"A Google User"] 
,,,,1] 
,3000,,,"Double tree was ok, it wasnt super fancy or anything. Its good for families and just relaxing by the pool. Service was good, and rooms were kept neat.","a year ago",["http://www.ma..",,1],,"","",""] 
] 
,["Rooms","Service","Location","Value"] 
,[] 

这是不可能的使用PHP json_decode()函数来解析。有没有图书馆或者其他什么东西可以让我把它转换成普通的json,这样我的任务会变得更简单?否则我知道我必须写正则表达式。

谢谢先进。

+0

是数组的数组?你能正常化吗?意思就是像这样的'array(name,array(work,array(something))'。因为在你的OP – Tamil 2012-07-24 08:10:29

+0

中没有任何事情可以从日期中有意义地推断出来,所以我已经粘贴了我得到的实际数据。我也无法弄清楚它是如何格式化的 – 2012-07-24 08:14:17

+0

它不是正确的嵌套如果你想提取数据,正则表达式是唯一的解决方案 – Tamil 2012-07-24 08:20:03

回答

0

根据您的评论。柜面你的数据是

[["oppl.lr",[,,,,,,,,,,,[[,"A Google User"],"",""],""]]]

如果你可以将数据以某种方式发送到客户端。然后它是一个有效的JavaScript数组。要么你可以处理数据@client侧或使用

JSON.stringify([["oppl.lr",[,,,,,,,,,,,[[,"A Google User"],"",""],""]]]);

,并通过PHP的数据

"[["oppl.lr",[null,null,null,null,null,null,null,null,null,null,null,[[null,"A Google User"],"",""],""]]]"

否则发送回服务器,您可以使用此功能

function getValidArray($input) { 
    $input = str_replace(",,", ',"",', $input); 
    $input = str_replace(",,", ',"",', $input); 
    $input = str_replace("[,", '["",', $input); 
    return eval("return $input;"); 
} 

您可以根据需要优化上述功能。

+0

getValidArray函数的前两行是完全相同的......这需要什么...? – 2012-07-24 09:47:58

+0

它也给解析错误。 – 2012-07-24 09:53:07

+0

你给了什么输入?我只测试了你的输入。我已经明确提到'你可以根据需要优化上述功能,但这只是一个想法。所以,如果你有不同的意见,请考虑重写。因为你的OP清楚地提到了任何想法;) – Tamil 2012-07-24 10:02:31