开发者

How can i parse this json data?

I have this json encoded values

"AllEvents":[
         {
            "eventId":"22",
            "eventTitle":"VANGUARD Friday w/ Colette - Free All Night w/ RSVP!",
            "eventImageUrl":"events/64ffcc09e1c3e73a17c998035ecd7f72.jpeg",
            "eventDescription":"Pete G presents     Friday, September 24, 2010 @ VANGUARD Hollywood    OM Records & Candy Talk welcomes ..    Main Room:  .COLETTE (Los Angeles) OM Records, Candy Talk  .CHUCK LOVE (Minneapolis) Love Network Tour, Om Records  .ANDY COMPTON (UK) The Rurals, Kholofelo Lp Tour    Patio Hosted by Droid Behavior:  .RAíZ aka ACID CIRCUS (Los Angeles) Droid Behavior  .DEAN PAUL vs VIK CARRILLO (Los Angeles) Droid Behavior  .DJ MODESTY (Los Angeles) Friendly Integration    21+ to Enter | Doors Open 10pm-3am+  Free Entry All Night Long w/ RSVP  __________________________________    + PLAYHOUSE Mondays | ECCO Wednesdays | MY HOUSE Fridays | VANGUARD Fridays | MUSIC BOX Saturdays +  __________________________________    To RSVP Please  1.) E-Mail Pete@SuperstarsVIP.com  2.) Text 323.394.3917 (Pete G)  3.) Sign Up Online @ http://www.SuperstarsVIP.com"
         },{
            "eventId":"30",
            "eventTitle":"test title",
            "eventImageUrl":"events/eb5afdce0e8e687b21112162733df5ba.jpeg",
            "eventDescription":"zxzxzx"
         },{
            "eventId":"80",
            "eventTitle":"OH YOU FANCY FRIDAYS @ Push Lounge",
            "eventImageUrl":"events/6eda786bdd8d07d93e300305df66cac4.jpeg",
            "eventDescription":"Skum Entertainment presents...<br />
OH YOU FANCY FRIDAYS<br />
Every other Friday "Oh You Fancy! Friday's" at Push Loungee<br />
...2 for 1 drinks from 9pm-12am!<br />
$5 cover - Admission includes a drink ticket!<br />
21+ only - Bring your ID!<br />
<br />

This week! Friday, February 11th<br />
- DJ G-Rock spinning your favorites in Hip Hop, Top 40 & Rap<br />
- Live performance by T-KO (www.myspace.com/terrakilla)<br />
- Roaming photography by OHDAGYO & SKUM<br />
- Wings World Food Truck out front!<br />
- Special birthday celebration for your favorite bartender Jesse Diaz!<br />
<br />
PUSH LOUNGE<br />

20969 Ventura Blvd<br />
Woodland Hills, CA 91364<br />
(Entrance is on Peralta St)<br />
Parking is FREE!"
         },{
            "eventId":"21",
            "eventTitle":"Benny Benassi - Limited $25 Tickets!",
            "eventImageUrl":"events/2f64e7a15388364d0a9059f42725df77.jpeg",
            "eventDescription":"Decor presents BENNY BENASSI this Saturday @ The Music Box 10pm-4am!<br />
<br />
Insomniac and The Box will collaborate to bring the electronic music scene to vivid life Saturday nights at the legendary Music Box Theatre. <br />
<br />
Experience our mega sound system, world class artists, sexy dancefloor, CO2 cannons, Rooftop patio, gigantic LED visual display at Hollywood's biggest 21+ party!<br />
<br />
"Benny Benassi (born Marco Benassi; July 13, 1967) is a Grammy Award winning Italian DJ and producer of electro house music. He is best known for his 2002 summer club hit "Satisfaction". Benny Benassi ranks as the 10th most popular DJ in the world according to The DJ List website. On October 28, 2009, DJ Magazine announced the results of their annual Top 100 DJ Poll, with Ultra Records artist Benny Benassi placed #26, 13 spots higher than the previous year."<br />

<br />
http://en.wikipedia.org/wiki/Benny_Benassi<br />
<br />
Pre-Sa开发者_运维问答les Highly Encouraged!! Get them NOW before ticket prices increase. If you don't have a pre-sale ticket you will probably not get in. This event is likely to sell out in advance.  If it doesn't tickets at the door are going to cost an arm and a leg and you're going to have to either wait in line for hours or arrive by 9pm.  Please be forewarned! ;)<br />
<br />
$25 tickets online for a limited time @<br />
http://tinyurl.com/benny-benassi-at-the-box"
         }

but when i run it in http://jsonformatter.curiousconcept.com/#jsonformatter it gives errors

i have applied this to variable which gives me description.

$AllEvent[$i]['even_desc'] = str_replace(array("\r\n", "\r", "\n","<br />"), " ", $AllEvent[$i]['even_desc']);

please help.


You cannot parse it. It's invalidly constructed. Your options are either to manually fix it, or to use a workaround.

Instead of parsing you could use an approximating extraction, which does not care about the correctness of the quotes:

preg_match_all('#"(\w+)":"(.*?)"(?:,|\s*\})#ims',
        $broken_json_input, $data, PREG_SET_ORDER);
print_r($data);

This will give you a list of key=>value tokens. But they are not grouped. So you have to manually iterate over that list and fetch what you want.


Look at my answer to this question

Also you have to escape " in JSON (If you look at the code of your question with syntax highlighting you'll see some part in blue, this is where the escaping of the " misses:

Every other Friday "Oh You Fancy! Friday's" at Push Loungee<br />

should turn into:

Every other Friday \"Oh You Fancy! Friday's\" at Push Loungee<br />

Note the \" instead of the ".


Your have a double quotes in double quotes Checkout Every other Friday "Oh You Fancy! Friday's" at Push Loungee

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜