Parsing JSON in objective-c can't understand how get a parameter - iphone
{"updated":1350213484,"id":"http://www.google.com/reader/api/0/feed-finder?q\u003dProva\u0026output\u003djson","title":"Risultati di feed per \"Prova\"","self":[{"href":"http://www.google.com/reader/api/0/feed-finder?q\u003dProva\u0026output\u003djson"}],"items":[{"title":"Home Page - La prova del cuoco","id":"http://www.laprovadelcuoco.rai.it/","updated":1350213485,"feed":[{"href":"http://www.laprovadelcuoco.rai.it/dl/portali/site/page/Page-ffb545b4-9e72-41e5-866f-a465588c43fa-rss.html"}],"alternate":[
{"href":"http://www.laprovadelcuoco.rai.it/","type":"text/html"}],"content":{"direction":"ltr","content":"Diventa un cuoco provetto con “La Prova del Cuoco”: le videoricette in un' applicazione di facile e veloce consultazione per il tuo Iphone. Scopri come acquistare ..."}},{"title":"Le prove Invalsi di matematica e italiano","id":"http://online.scuola.zanichelli.it/quartaprova/","updated":1350213486,"feed":[{"href":"http://online.scuola.zanichelli.it/quartaprova/feed/"}],"alternate":[{"href":"http://online.scuola.zanichelli.it/quartaprova/",
"type":"text/html"}],"content":{"direction":"ltr","content":"Un sito Zanichelli dedicato alle prove Invalsi di italiano e matematica: esercitazioni, consigli, informazioni utili, novità, aggiornamenti e blog d'autore sulle prove ..."}},{"title":"A Prova di Mamma","id":"http://www.aprovadimamma.net/","updated":1350213487,"feed":[{"href":"http://aprovadimamma.blogspot.com/feeds/posts/default"}],"alternate":[{"href":"http://www.aprovadimamma.net/","type":"text/html"}],"content":{"direction":"ltr",
"content":"recensioni, guide ed opinioni sui prodotti per bambini. web | www. \u003ca href\u003d\"http://aprovadimamma.net\"\u003eaprovadimamma.net\u003c/a\u003e email | aprovadimamma -at- \u003ca href\u003d\"http://gmail.com\"\u003egmail.com\u003c/a\u003e. 2011 A Prova di Mamma è un ..."}},{"title":"prova - Wiktionary","id":"http://en.wiktionary.org/wiki/prova","updated":1350213488,"feed":[{"href":"http://en.wiktionary.org/w/index.php?title\u003dSpecial:RecentChanges\u0026feed\u003datom"}],"alternate":[
{"href":"http://en.wiktionary.org/wiki/prova","type":"text/html"}],"content":{"direction":"ltr","content":"prova. Definition from Wiktionary, the free dictionary. Jump to: navigation, search. See also pröva, and próva. Contents. 1 Catalan. 1.1 Noun; 1.2 Verb. 2 Italian ..."}},{"title":"Prova a prendermi - MYmovies","id":"http://www.mymovies.it/dizionario/recensione.asp?id\u003d34298","updated":1350213489,"feed":[{"href":"http://www.mymovies.it/cinema/xml/rss/"}],"alternate":[{"href":"http://www.mymovies.it/dizionario/recensione.asp?id\u003d34298",
"type":"text/html"}],"content":{"direction":"ltr","content":"Un film di Steven Spielberg con Leonardo DiCaprio, Tom Hanks, Christopher Walken, Martin Sheen. Spielberg decide di divertire e divertirsi, con un cast ..."}},{"title":"Prova a incastrarmi - MYmovies","id":"http://www.mymovies.it/dizionario/recensione.asp?id\u003d35955","updated":1350213490,"feed":[{"href":"http://www.mymovies.it/cinema/xml/rss/"}],"alternate":[{"href":"http://www.mymovies.it/dizionario/recensione.asp?id\u003d35955",
"type":"text/html"}],"content":{"direction":"ltr","content":"Un film di Sidney Lumet con Vin Diesel, Peter Dinklage, Linus Roache, Ron Silver. Il processo per mafia più lungo della storia degli Usa nelle mani di Lumet e ..."}},{"title":"Impariamo.info","id":"http://www.impariamo.info/","updated":1350213491,"feed":[{"href":"http://www.impariamo.info/feeds/posts/default"}],"alternate":[{"href":"http://www.impariamo.info/","type":"text/html"}],"content":{"direction":"ltr","content":"Impariamo.info. Prova il tuo italiano. Pages. Home · Cultura · Chat ... Prove di ascolto. Dettati · Livello A2 · Livello B1 · Livello B2. Giochi. Acrostici · Anagrammi ..."
}},{"title":"Schede informative prova scritta di Ateneo - Ca' Foscari","id":"http://www.unive.it/nqcontent.cfm?a_id\u003d134832","updated":1350213492,"feed":[{"href":"http://www.unive.it/phpapps/rss/eventi_rss.php"}],"alternate":[{"href":"http://www.unive.it/nqcontent.cfm?a_id\u003d134832","type":"text/html"}],"content":{"direction":"ltr","content":"Di seguito sono pubblicate le sedi delle prove scritte di Ateneo e, in allegato, ... La prova scritta si svolgerà giovedì 30 agosto alle ore 16.00 presso il Polo di San ..."
}},{"title":"Prova d'autore","id":"http://www.osservatorionline.it/page/459/prova-dautore-leggere-per-scrivere","updated":1350213493,"feed":[{"href":"http://www.osservatorionline.it/page/459/rss-news.php?lang\u003dit"}],"alternate":[{"href":"http://www.osservatorionline.it/page/459/prova-dautore-leggere-per-scrivere","type":"text/html"}],"content":{"direction":"ltr","content":"Prova d'autore: leggere per scrivere. Edizione 2012/2013. Per l'anno scolastico 2012-2013 l'Osservatorio Permanente Giovani-Editori e la Fondazione Achille e ..."
}},{"title":"Maturità, la terza prova scritta ma potrebbe essere l'ultima volta ...","id":"http://www.repubblica.it/scuola/2012/06/24/news/terza_prova_maturita-37857437/","updated":1350213494,"feed":[{"href":"http://www.repubblica.it/rss/homepage/rss2.0.xml"}],"alternate":[{"href":"http://www.repubblica.it/scuola/2012/06/24/news/terza_prova_maturita-37857437/","type":"text/html"}],"content":{"direction":"ltr","content":"24 giu 2012 ... Predisposta la mattina stessa dalle commissioni, comporta spesso molte difficoltà per gli studenti. Subito dopo inizia la correzione degli ..."
}}]}
How can I parse it?
I'm doing
NSArray* title = [(NSDictionary*)[daParsare JSONValue] objectForKey:#"title"];
NSLog(title);
I get Risultati di feed per \"Prova\
but what I want are all "title" inside the "items" and the "feed" parameter... I want to store they in one array
How can I do?
******* EDIT ********
Ok but when I try to get the feed url I get a SIGABRT error
NSDictionary *element=[feeds objectAtIndex:indexPath.row];
NSString *title = [[NSString alloc]initWithString:[element objectForKey:#"title"]];
NSString *summary = [[NSString alloc]initWithString:[element valueForKeyPath:#"feed.href"]]; cell.textLabel.numberOfLines=3;
cell.textLabel.font=[UIFont boldSystemFontOfSize:16];
cell.textLabel.text = title;
cell.detailTextLabel.text = summary;
cell.detailTextLabel.numberOfLines=5;
[title release];
[summary release];
If I try to NSLog the feed url in the loop cycle it was null!
last question in this case how can I get the content? it is in a content key inside another content key! :S
That's an example
"title":"Home Page - La prova del cuoco",
"id":"http://www.laprovadelcuoco.rai.it/",
"updated":1350213485,
"feed":[
{
"href":"http://www.laprovadelcuoco.rai.it/dl/portali/site/page/Page-ffb545b4-9e72-41e5-866f-a465588c43fa-rss.html"
}
],
feed is different from title...
In the given example you will look for the first object containing the key "title". Which in the JSON is located at the first level of data.
In order to get the value for the "items" you first need to parse that level of data then fetch the values you are interested in.
The example below first fetches the items from the root level then goes through each of the keys, finding the title and the feed value.
Hope this helps!
NSArray *items = [[daParsare JSONValue] objectForKey:#"items"];
for (NSDictionary *item in items) {
NSString *title = [item objectForKey:#"title"];
NSString *feed = [item valueForKeyPath:#"feed.href"];
}
I hope you get the array for key "items". Using the below code I get the following output:
Code:
NSArray *itemsDic=[jsonParsedObj objectForKey:#"items"];
NSArray *titles=[itemsDic valueForKey:#"title"];
To get the contents from "items" , use the following code
NSArray *contents=[itemsDic valueForKeyPath:#"content.content"];
Output:
(
Home Page - La prova del cuoco,
Le prove Invalsi di matematica e italiano,
A Prova di Mamma,
prova - Wiktionary,
Prova a prendermi - MYmovies,
Prova a incastrarmi - MYmovies,
Impariamo.info,
Schede informative prova scritta di Ateneo - Ca' Foscari,
Prova d'autore,
Maturità, la terza prova scritta ma potrebbe essere l'ultima volta ...
)
Related
WhatsApp Templates and Error 63016 triggering a lot -- are new lines a problem?
I am using some WhatsApp templates associated with my number. But I am having mixed success in getting them to work without Error 63016. I create 9 templates, and 8 of them are getting the Error, which means that they are not matching the message I am sending with the template. They do not work either if I execute them through Flow, or through Python (Rest API). I have tried deleting and re-submitting the same template, and it failed again. This is bothering me because testing out 9 templates and re-submitting them is laborsome. Any ideas what m Template #1, works fine: Olá {{1}}, Nós vamos novamente te fazer algumas perguntas sobre seus hábitos de consumo de notícias nas últimas semanas São poucas perguntas, e as respostas são simples, como “Sim” ou “Não”. Não deve levar mais de 2 minutos do seu tempo para responder à todas as perguntas. Quando estiver pronto para responder, mande qualquer mensagem nessa conversa, como “Estou pronto”, ou clique no botão abaixo. Template #2, not working: Olá {{1}}, Nós vamos te fazer algumas perguntas sobre alguns fatos políticos que aconteceram nas últimas semanas. São poucas perguntas, e as respostas são simples, como “Sim” ou “Não”. Não deve levar mais de 2 minutos do seu tempo para responder à todas as perguntas. Quando estiver pronto para responder, mande qualquer mensagem nesse chat, como “Estou pronto”, ou clique no botão abaixo.
Use of wildcards in Microsoft word to selected text or numbers between round brackets or before a dot
Hi I am a complete novice with Microsoft word wildcard function using ctrl h. So I need some assistance in selecting all sequence text or numbers between round brackets or before a dot, (including the brackets and dots) . More specifically I need to select at once, all sequence Art.227. -, Art.228. -... or all sequence (1),(2),(3)... or all sequence a),b),c) or all sequence 1.,2.,3., or all sequence (i),(ii),(iii), which are bolded in the text, as in the following sample: Art. 227. - (1) Banca Naţională a României are competenţa de a aplica sancţiuni administrative, în cazurile în care constată că entităţile prevăzute la art. 223 alin. (1) şi/sau oricare dintre persoanele care exercită responsabilităţi de administrare şi/sau conducere a activităţii de prestare de servicii de plată în cadrul acestora se fac vinovate de următoarele fapte: a) încălcarea prevederilor art. 150-165, art. 218-221, art. 248 alin. (3), a reglementărilor emise în aplicarea acestor articole, precum şi a actelor delegate adoptate de Comisia Europeană în materie de servicii de plată; (i) respectarea imediată a clauzelor contractuale care au fost încălcate; (ii) dispunerea încetării încasării, respectiv restituirea sumelor încasate fără temei legal, într-un termen de cel mult 15 zile calendaristice de la data luării la cunoştinţă a procesului-verbal de constatare a contravenţiei; (iii) aducerea contractului sau tuturor contractelor, după caz, potrivit prevederilor legale, în termen de cel mult 15 zile calendaristice de la data luării la cunoştinţă a procesului-verbal de constatare a contravenţiei; b) nerespectarea măsurilor administrative dispuse potrivit art. 223 alin. (2) lit. c). 1. acceptarea operaţiunilor de plată - serviciu de plată prin care un prestator de servicii de plată, în baza unui contract încheiat cu beneficiarul plăţii, acceptă şi prelucrează operaţiuni de plată în scopul transferării fondurilor către beneficiarul plăţii; 2. agent - persoană fizică sau juridică care furnizează servicii de plată în numele şi pe seama unei instituţii de plată sau unui furnizor specializat în servicii de informare cu privire la conturi; 3. autentificare - procedură care permite prestatorului de servicii de plată să verifice identitatea unui utilizator al serviciilor de plată sau valabilitatea utilizării unui anumit instrument de plată şi care include utilizarea elementelor de securitate personalizate ale utilizatorului; (2) În cazurile prevăzute la alin. (1), Banca Naţională a României are competenţa de a aplica următoarele sancţiuni administrative: a) avertisment scris; b) amendă cuprinsă între 10.000 lei şi 100.000 lei, pentru faptele prevăzute la alin. (1) lit. a) şi b); c) amendă până la de două ori valoarea profiturilor obţinute sau a pierderilor evitate de către persoana responsabilă, în măsura în care acestea pot fi determinate, aplicabilă prestatorilor de servicii de plată; d) suspendarea temporară a dreptului prestatorilor de servicii de plată de a presta servicii de plată până la remedierea situaţiei care a determinat suspendarea; e) suspendarea dreptului de acces la sistemele de plăţi până la remedierea situaţiei care a determinat suspendarea. (3) Sancţiunile administrative prevăzute la alin. (1) pot fi aplicate concomitent cu dispunerea de măsuri administrative potrivit art. 223 alin. (2) lit. c) sau independent de acestea. (4) Amenzile încasate se fac venit la bugetul de stat. (5) Aplicarea sancţiunilor administrative prevăzute la alin. (1) se prescrie în termen de 1 an de la data constatării faptei, dar nu mai mult de 3 ani de la data săvârşirii acesteia. Art. 228. - (1) Constatarea faptelor prevăzute la art. 227 alin. (1) se realizează de către reprezentanţi împuterniciţi ai Băncii Naţionale a României pe baza raportărilor făcute potrivit legii ori reglementărilor emise în aplicarea acesteia sau actelor delegate adoptate de Comisia Europeană în materie de servicii de plată sau la solicitarea expresă a Băncii Naţionale a României ori în cursul verificărilor desfăşurate la sediul profesional sau real al entităţilor prevăzute la art. 223 alin. (1) sau la locaţiile acestora ori la sediile/locaţiile furnizorilor externi în cazul externalizării activităţilor, după caz. (2) Actele prin care sunt aplicate sancţiuni administrative şi sunt dispuse măsuri administrative potrivit prevederilor art. 227 şi reglementărilor emise în aplicarea acestora se emit de către guvernatorul, prim-viceguvernatorul sau viceguvernatorii Băncii Naţionale a României, conform reglementărilor interne, cu excepţia sancţiunilor administrative prevăzute la art. 227 alin. (2) lit. d) şi e), care sunt de competenţa Consiliului de administraţie al Băncii Naţionale a României. (3) Actele prevăzute la alin. (2) trebuie să cuprindă cel puţin elementele de identificare ale persoanei vinovate, descrierea faptei şi a circumstanţelor efectuării acesteia şi temeiul de drept al dispunerii măsurii administrative sau, după caz, al aplicării sancţiunii administrative. If this is not possible in word, can you help me with regex expressions in notepad++? Thank you
If I have understood you well ? Use below code in notepad++ regular expression mode .... Find:^\(?\w+[.)].*$ Replace with: leave it empty or your desired typing Update ^\(?(\w{1,3})[.)].*$ is a bit more safe
MongoDB full text inconsistent results
I'm going deep into full-text search features and i'm finding some strange behaviors I cannot explain. Here is a simple batch I run to setup my db for the test. use MusicDB db.songs.insertMany([{ "rank": 1000, "authors": ["Pink Floyd"], "title": [ { "language": "en", "text": "Comfortably numb" }, { "language": "it", "text": "Piacevolmente insensibile" } ], "text": [ { "language": "en", "text": "Hello, Is there anybody in there? Just nod if you can hear me Is there anyone at home? Come on now I hear you're feeling down I can ease your pain And get you on your feet again Relax I'll need some information first Just the basic facts Can you show me where it hurts There is no pain, you are receding A distant ship smoke on the horizon You are coming through in waves Your lips move but I can't hear what you're saying When I was a child I had a fever My hands felt just like two balloons Now I've got that feeling once again I can't explain, you would not understand This is now how I am I have become comfortably numb O.K. Just a little pin prick There'll be no more aaaaaaaah! But you may feel a little sick Can you stand up? I do belive it's working, good That'll keep you going through the show Come on it's time to go. There is no pain you are receding A distant ship smoke on the horizon You are only coming through in waves our lips move but I can't hear what you're saying When I was a child I caught a fleeting glimpse Out of the corner of my eye I turned to look but it was gone I cannot put my finger on it now The child is grown The dream is gone And I have become Comfortably numb."}, { "language": "it", "text": "Coraggio, lo so che ti senti triste. Posso alleviare il tuo dolore e rimetterti di nuovo in piedi. Rilassati. Prima di tutto ho bisogno di sapere senza troppi dettagli dove ti fa male. Il dolore è sparito, stai guarendo Il fumo di una nave lontana all'orizzonte stai risalendo onda dopo onda. Le tue labbra si muovono, ma io non riesco a sentire quello che stai dicendo. Da bambino ho avuto la febbre, le mie mani erano gonfie come palloni. Adesso avverto di nuovo quella senzazione, non riesco a spiegartelo, non riusciresti a capire. Questo non sono io. Sto diventando piacevolmente insensibile. Va bene, solo una punturina, e non piangerai più. Ma può darsi che avrai un po' di nausea, Ce la fai a stare in piedi? Penso che stia funzionando, bene. Questo ti terrà in piedi per tutto lo spettacolo. Dai, è ora di andare. Il dolore è sparito, si sta allontanando. Il fumo di una nave lontana all'orizzonte Stai risalendo onda dopo onda. Le tue labbra si muovono, ma io non riesco a sentire quello che stai dicendo. Da bambino colsi con la coda dell'occhio un rapido movimento. Mi girai a guardare, ma era sparito, non riescii a capire cosa fosse, adesso il bambino è cresciuto, il sogno è finito. e io sono diventato piacevolmente insensibile."} ] }, { "rank": 999, "authors": ["Led Zeppelin"], "title": [ { "language": "en", "text": "Stairway to Heaven" }, { "language": "it", "text": "Scalinata per il paradiso" } ], "text": [ { "language": "en", "text": "There's a lady who's sure all that glitters is gold And she's buying a stairway to heaven. When she gets there she knows, if the stores are all closed With a word she can get what she came for. Ooh, ooh, and she's buying a stairway to heaven. There's a sign on the wall but she wants to be sure 'Cause you know sometimes words have two meanings. In a tree by the brook, there's a songbird who sings, Sometimes all of our thoughts are misgiven. Ooh, it makes me wonder, Ooh, it makes me wonder. There's a feeling I get when I look to the west, And my spirit is crying for leaving. In my thoughts I have seen rings of smoke through the trees, And the voices of those who standing looking. Ooh, it makes me wonder,Ooh, it really makes me wonder. And it's whispered that soon if we all call the tune Then the piper will lead us to reason. And a new day will dawn for those who stand long And the forests will echo with laughter. If there's a bustle in your hedgerow, don't be alarmed now, It's just a spring clean for the May queen. Yes, there are two paths you can go by, but in the long run There's still time to change the road you're on. And it makes me wonder. Your head is humming and it won't go, in case you don't know, The piper's calling you to join him, Dear lady, can you hear the wind blow, and did you know Your stairway lies on the whispering wind. And as we wind on down the road Our shadows taller than our soul. There walks a lady we all know Who shines white light and wants to show How ev'rything still turns to gold. And if you listen very hard The tune will come to you at last. When all are one and one is all To be a rock and not to roll. And she's buying a stairway to Heaven."}, { "language": "it", "text": "C'è una donna che crede che tutto cio che luccica sia oro Ha intenzione di comprare una scala per raggiungere il Paradiso E quando vi arriva sa, se i negozi sono chiusi, con una parola può avere ciò per cui è venuta qui Ooh, ooh, e sta comprando una scala per il paradiso. C'è una scritta sul muro, ma lei vuole essere sicura Perchè, lo sai, a volte le parole hanni due significati Su un albero vicino al ponte, c'è un uccellino che canta A volte, tutti i nostri pensieri sono sospetti. Ooh, e mi domando, Ooh, e mi domando. Quella sensazione che provo quando guardo verso Ovest E la mia anima grida di partire Nei miei pensieri ho visto spirali di fumo tra gli alberi. E le voci di quelli che stanno a guardare Ooh, e mi fa pensare, Ooh, e mi fa pensare. E si mormora che presto, se tutti canteremo la melodia il pifferaio ci guiderà alla ragione e un nuovo giorno spunterà per quelli che stavano aspettando da tanto E le foreste eccheggeranno di risate. Se c'è una via vai sul tuo sentiero, non ti allarmare Sono solo i preparativi per la reginetta di Maggio Si, ci sono due strade che puoi percorrere, ma alla fine farai ancora tempo a cambiare il tuo percorso. E mi fa pensare La tua testa canitcchia e quella melodia non se ne andrà, nel caso non lo sapessi, Il pifferaio ti sta chiamando, vuole che tu vada da lui. Dolce donna, senti il vento soffiare e lo sapevi che la tua scala poggia sui sussurri del vento. E mentre scendiamo lungo la strada e le nostre ombre sono più alte della nostra anima Là cammina una signora che noi tutti conosciamo che fa splendere una luce bianca e vuol mostrarci come tutto continui a tramutarsi in oro. E se ascolti molto attentamente Prima o poi la melodia giungerà a te Quando tutti sono uno e una cosa sola è tutto essere una roccia ma senza rotolare. E sta comprando una scala verso il Paradiso."} ] }]); db.songs.createIndex({ "title.text": "text", "text.text": "text" }) Now please notice that the word "lady" appears only one time into the "en" text of the second record. Now I runs the following queries db.songs.find({ "$text": { "$search": "lady", "$language": "it" }}) // no occurrences found db.songs.find({ "$text": { "$search": "lady", "$language": "en" }}) // one occurrence found db.songs.find({ "$text": { "$search": "lady", "$language": "none" }}) // no occurrences found Unfortunately this does not match the documentation that say "language" field is only_ used for stemming so I figure that all the searches should return exactly one document. "$search": "lady" with "$language": "en" // "lady" is stemmed to "ladi" so this match "lady" and "ladies" "$search": "lady" with "$language": "it" // "lady" is stemmed exactly to "lady" so this match "lady" "$search": "lady" with "$language": "none" // "lady" is not stemmed but tokenization results in "lady" so this match "lady" Can someone explain if I'm going wrong in creating the index of in reading the results? Thanks.
Data not appearing on node - Neo4j
I have this csv file Nr_TipoCadeia,Designacao,Descricao 1,Hotel,O hotel � um edif�cio equipado e projectado para albergar as pessoas de forma tempor�ria. 2,Pousada,"As pousadas podem ser uma �tima alternativa aos hot�is, com pre�os mais atrativos e atendimento personalizado." 3,Motel,Motel � um estabelecimento de hospedagem que se diferencia dos demais porque as pessoas geralmente v�o at� ele com o objetivo de manter rela��es sexuais e n�o necess ariamente para conseguir alojamento. 4,Pensao,"Casa em que se admitem h�spedes, mediante pagamento." 5,Resort," Os resorts possuem servi�os variados de est�tica, quadras poliesportivas e muitas piscinas." I am trying to import the file to Neo4j using the following query: load csv with headers from 'file:///TipoCadeia.csv' as line create (tipocadeia:TipoCadeia {Nr_TipoCadeia: TOINT(line.Nr_TipoCadeia)}) set tipocadeia.Designacao = line.Designacao, tipocadeia.Descricao = line.Descricao return tipocadeia; Everything is ok, except in the node where the third line of the csv file should be stored, it only appears <id>:317 when it should be like <id>:317 Nr_TipoCadeia:3 Designacao:Motel Descricao:.... The other nodes are fine. Why is this happening?
iPhone : Complex CSV Parser
I'd like to parse a complex CSV file. I searched sources on the web but I only found readers for simple csv with coma and quote marks. But mine also contains "{", "[" and ":" in order to create groups, subgroups... How can I retrieve a proper NSArray or a NSDictionary from this kind of csv ? Or do you know a great (great !) csv reader/parser ? Thanks ! Here is an example : {"meta":{"code":200},"response":{"groups":[{"type":"nearby","name":"À proximité","items":[{"id":"4bc88ad72f94d13aa9c5137f","name":"Métro Chaussée d'Antin - La Fayette [7,9]","contact":{},"location":{"address":"Métro Chaussée d'Antin - La Fayette","city":"Paris","state":"Île de France","postalCode":"75009","lat":48.872908,"lng":2.33325,"distance":39},"categories":[{"id":"4bf58dd8d48988d1fd931735","name":"Subways","icon":"http://foursquare.com/img/categories/travel/subway.png","parents":["Travel Spots"],"primary":true}],"verified":false,"stats":{"checkinsCount":885,"usersCount":368},"hereNow":{"count":0}},{"id":"4ba8e508f964a520e4f739e3","name":"AdenClassifieds","contact":{},"location":{"address":"1-3 rue La Fayette","city":"Paris","state":"France","postalCode":"75009","lat":48.8733461,"lng":2.3340489,"distance":50},"categories":[{"id":"4bf58dd8d48988d124941735","name":"Offices","icon":"http://foursquare.com/img/categories/building/default.png","parents":["Homes, Work, Others"],"primary":true}],"verified":false,"stats":{"checkinsCount":187,"usersCount":29},"hereNow":{"count":0}},{"id":"4c10cd34b4aeef3bad5afc0f","name":"AdenSourcing","contact":{},"location":{"address":"1, rue La Fayette","city":"Paris","state":"France","postalCode":"75009","lat":48.873009,"lng":2.333263,"distance":28},"categories":[{"id":"4bf58dd8d48988d125941735","name":"Tech Startups","icon":"http://foursquare.com/img/categories/building/default.png","parents":["Homes, Work, Others","Offices"],"primary":true},{"id":"4bf58dd8d48988d174941735","name":"Coworking Spaces","icon":"http://foursquare.com/img/categories/building/default.png","parents":["Homes, Work, Others","Offices"]}],"verified":false,"stats":{"checkinsCount":60,"usersCount":7},"hereNow":{"count":0}},{"id":"4b6d79c2f964a520f6762ce3","name":"Négatif+","contact":{},"location":{"address":"106 rue lafayette","city":"Paris","state":"France","postalCode":"75010","lat":48.873035,"lng":2.333235,"distance":26},"categories":[{"id":"4bf58dd8d48988d1ff941735","name":"Miscellaneous Shops","icon":"http://foursquare.com/img/categories/shops/default.png","parents":["Shops"],"primary":true}],"verified":false,"stats":{"checkinsCount":121,"usersCount":51},"hereNow":{"count":0}},{"id":"4beeb21a2c082d7f96b53042","name":"Sephora Haussmann","contact":{},"location":{"address":"23 bd Hausmann","city":"Paris","state":"Ile-de-France","lat":48.8728835,"lng":2.3334661,"distance":41},"categories":[{"id":"4bf58dd8d48988d10c951735","name":"Cosmetics Shops","icon":"http://foursquare.com/img/categories/shops/beauty_cosmetic.png","parents":["Shops"],"primary":true}],"verified":false,"stats":{"checkinsCount":135,"usersCount":75},"hereNow":{"count":0}},{"id":"4af55e08f964a520f3f821e3","name":"Chez Jean","contact":{},"location":{"address":"4 rue La Fayette","city":"Paris","state":"France","postalCode":"75009","lat":48.8731558,"lng":2.3334978,"distance":13},"categories":[{"id":"4bf58dd8d48988d118951735","name":"Grocery Stores","icon":"http://foursquare.com/img/categories/shops/food_grocery.png","parents":["Shops","Food and Drink Shops"],"primary":true}],"verified":false,"stats":{"checkinsCount":46,"usersCount":27},"hereNow":{"count":0}},{"id":"4bee9a52e8c3c928dfd89892","name":"H&M","contact":{},"location":{"lat":48.872951,"lng":2.333551,"distance":35},"categories":[{"id":"4bf58dd8d48988d104951735","name":"Boutiques","icon":"http://foursquare.com/img/categories/shops/apparel.png","parents":["Shops","Clothing Stores"],"primary":true}],"verified":false,"stats":{"checkinsCount":84,"usersCount":66},"hereNow":{"count":0}},{"id":"4b51d04df964a520865627e3","name":"Surcouf","contact":{},"location":{"address":"21, bd Haussmann","city":"Paris","state":"France","postalCode":"75009","lat":48.8728008,"lng":2.3339615,"distance":65},"categories":[{"id":"4bf58dd8d48988d122951735","name":"High Tech Outlets","icon":"http://foursquare.com/img/categories/shops/technology.png","parents":["Shops"],"primary":true}],"verified":false,"stats":{"checkinsCount":332,"usersCount":194},"hereNow":{"count":0}},{"id":"4b1e6795f964a5209a1924e3","name":"Le Manoir","contact":{},"location":{"address":"34 Boulevard Haussmann","city":"Paris","state":"France","postalCode":"75009","lat":48.872964707066394,"lng":2.334015369415283,"distance":56},"categories":[{"id":"4bf58dd8d48988d16d941735","name":"Cafés","icon":"http://foursquare.com/img/categories/food/cafe.png","parents":["Food"],"primary":true}],"verified":false,"stats":{"checkinsCount":116,"usersCount":61},"hereNow":{"count":0}},{"id":"4cb59ee81b0af04dca42ca25","name":"Casa Del Campo","contact":{},"location":{"address":"Rue Lafayette","city":"Paris","state":"Ile-de-France","lat":48.873035,"lng":2.333235,"distance":26},"categories":[{"id":"4bf58dd8d48988d1db931735","name":"Tapas Restaurants","icon":"http://foursquare.com/img/categories/food/default.png","parents":["Food"],"primary":true}],"verified":false,"stats":{"checkinsCount":12,"usersCount":11},"hereNow":{"count":0}},{"id":"4cdd43c0d5495481874446b2","name":"Thalys Paris > Bruxelles","contact":{},"location":{"address":"111 rue Lafayette","city":"Paris","state":"Ile-de-France","postalCode":"75011","lat":48.873035,"lng":2.333235,"distance":26},"categories":[{"id":"4bf58dd8d48988d12a951735","name":"Trains","icon":"http://foursquare.com/img/categories/travel/trainstation.png","parents":["Travel Spots","Train Stations"],"primary":true}],"verified":false,"stats":{"checkinsCount":5,"usersCount":5},"hereNow":{"count":0}},{"id":"4ba3d477f964a520226438e3","name":"Les Diamantaires","contact":{},"location":{"address":"60, Rue Lafayette","city":"Paris","state":"Ile-de-France","postalCode":"75009","lat":48.873035,"lng":2.333235,"distance":26},"categories":[{"id":"4bf58dd8d48988d115941735","name":"Middle Eastern Restaurants","icon":"http://foursquare.com/img/categories/food/middleeastern.png","parents":["Food"],"primary":true}],"verified":false,"stats":{"checkinsCount":11,"usersCount":10},"hereNow":{"count":0}},{"id":"4cbeb94297bc721e31158167","name":"Dentiste","contact":{},"location":{"address":"36 bd haussmann","city":"Paris","state":"Ile-de-France","lat":48.8729985,"lng":2.3331688,"distance":31},"categories":[{"id":"4bf58dd8d48988d178941735","name":"Dentist's Offices","icon":"http://foursquare.com/img/categories/building/medical_dentist.png","parents":["Homes, Work, Others","Medical Centers"],"primary":true}],"verified":false,"stats":{"checkinsCount":9,"usersCount":2},"hereNow":{"count":0}},{"id":"4c098514bbc676b0365c48d5","name":"Best Place To Be Naked","contact":{},"location":{"lat":48.872859,"lng":2.333289,"distance":43},"categories":[],"verified":false,"stats":{"checkinsCount":36,"usersCount":21},"hereNow":{"count":0}},{"id":"4bbc55912d9ea5937878a0ce","name":"Pizza Tivoli","contact":{},"location":{"address":"5 rue La Fayette","city":"Paris","state":"France","postalCode":"75009","lat":48.8733461,"lng":2.3340489,"distance":50},"categories":[{"id":"4bf58dd8d48988d110941735","name":"Italian Restaurants","icon":"http://foursquare.com/img/categories/food/default.png","parents":["Food"],"primary":true}],"verified":false,"stats":{"checkinsCount":62,"usersCount":47},"hereNow":{"count":0}},{"id":"4be11bf20f03a593908e18b4","name":"Pole Direction Nvx Medias","contact":{},"location":{"lat":48.872878,"lng":2.333277,"distance":42},"categories":[],"verified":false,"stats":{"checkinsCount":25,"usersCount":6},"hereNow":{"count":0}},{"id":"4c17d044834e2d7f94f02780","name":"Josefin","contact":{},"location":{"city":"Paris","state":"Ile-de-France","lat":48.872863,"lng":2.333273,"distance":43},"categories":[{"id":"4bf58dd8d48988d10c941735","name":"French Restaurants","icon":"http://foursquare.com/img/categories/food/default.png","parents":["Food"],"primary":true}],"verified":false,"stats":{"checkinsCount":14,"usersCount":8},"hereNow":{"count":0}},{"id":"4b597cfcf964a520e68928e3","name":"Siege Danone","contact":{},"location":{"address":"17 boulevard hausmann","city":"Paris","lat":48.873557,"lng":2.334042,"distance":59},"categories":[{"id":"4bf58dd8d48988d124941735","name":"Offices","icon":"http://foursquare.com/img/categories/building/default.png","parents":["Homes, Work, Others"],"primary":true}],"verified":false,"stats":{"checkinsCount":23,"usersCount":13},"hereNow":{"count":0}},{"id":"4c1f5058fcf8c9b6f66bae0b","name":"Obene","contact":{},"location":{"address":"35 rue saint lazarre","city":"Paris","state":"Francr","postalCode":"75009","lat":48.872829,"lng":2.333201,"distance":48},"categories":[{"id":"4bf58dd8d48988d1c0941735","name":"Mediterranean Restaurants","icon":"http://foursquare.com/img/categories/food/default.png","parents":["Food"],"primary":true}],"verified":false,"stats":{"checkinsCount":21,"usersCount":5},"hereNow":{"count":0}},{"id":"4d5133ac9ffc236a026720a7","name":"Sofa Cafe Studio","contact":{},"location":{"lat":48.873568,"lng":2.33384,"distance":48},"categories":[{"id":"4bf58dd8d48988d10c941735","name":"French Restaurants","icon":"http://foursquare.com/img/categories/food/default.png","parents":["Food"],"primary":true}],"verified":false,"stats":{"checkinsCount":11,"usersCount":10},"hereNow":{"count":0}},{"id":"4cfa4adf2d80a1438a9f43d8","name":"Manucurist","contact":{},"location":{"address":"Rue de la chausse d antin","city":"Paris","state":"Ile-de-France","lat":48.87294352054596,"lng":2.333693504333496,"distance":41},"categories":[{"id":"4bf58dd8d48988d10c951735","name":"Cosmetics Shops","icon":"http://foursquare.com/img/categories/shops/beauty_cosmetic.png","parents":["Shops"],"primary":true}],"verified":false,"stats":{"checkinsCount":28,"usersCount":4},"hereNow":{"count":0}},{"id":"4c7b90c9794e224bb48d6b28","name":"Le Galfa - La Fayette","contact":{},"location":{"lat":48.872853,"lng":2.333072,"distance":49},"categories":[{"id":"4bf58dd8d48988d10c941735","name":"French Restaurants","icon":"http://foursquare.com/img/categories/food/default.png","parents":["Food"],"primary":true}],"verified":false,"stats":{"checkinsCount":20,"usersCount":15},"hereNow":{"count":0}},{"id":"4c124b6377cea59338bccc60","name":"Noon","contact":{},"location":{"address":"Rue de la chaussee d antin","city":"Paris","state":"Ile-de-France","lat":48.8736428,"lng":2.3330026,"distance":51},"categories":[{"id":"4bf58dd8d48988d146941735","name":"Delis or Bodegas","icon":"http://foursquare.com/img/categories/food/deli.png","parents":["Food"],"primary":true}],"verified":false,"stats":{"checkinsCount":15,"usersCount":12},"hereNow":{"count":0}},{"id":"4bb2f78ea32876b0173a01fe","name":"Glam Media France (temp Offices)","contact":{},"location":{"address":"21 bd Haussman","city":"Paris","lat":48.87305,"lng":2.333831,"distance":39},"categories":[{"id":"4bf58dd8d48988d125941735","name":"Tech Startups","icon":"http://foursquare.com/img/categories/building/default.png","parents":["Homes, Work, Others","Offices"],"primary":true}],"verified":false,"stats":{"checkinsCount":7,"usersCount":4},"hereNow":{"count":0}},{"id":"4c122cd7583c9c74bf323fa4","name":"Havaianas welcomes Summer # Galeries Lafayette","contact":{"phone":"0142823456","twitter":"havaianaseurope"},"location":{"address":"40 boulevard Haussmann","city":"75009 Paris","state":"France","country":"France","lat":48.8731566,"lng":2.3327878,"distance":44},"categories":[{"id":"4bf58dd8d48988d107951735","name":"Shoe Stores","icon":"http://foursquare.com/img/categories/shops/apparel.png","parents":["Shops","Clothing Stores"],"primary":true}],"verified":true,"stats":{"checkinsCount":11,"usersCount":9},"hereNow":{"count":0}},{"id":"4b9a40c4f964a52081a735e3","name":"little georgette","contact":{},"location":{"lat":48.872544,"lng":2.33322,"distance":79},"categories":[{"id":"4bf58dd8d48988d10c941735","name":"French Restaurants","icon":"http://foursquare.com/img/categories/food/default.png","parents":["Food"],"primary":true}],"verified":false,"stats":{"checkinsCount":60,"usersCount":41},"hereNow":{"count":0}},{"id":"4c319736213c2d7f5e33345d","name":"Isiom","contact":{},"location":{"lat":48.872815,"lng":2.333228,"distance":49},"categories":[{"id":"4bf58dd8d48988d124941735","name":"Offices","icon":"http://foursquare.com/img/categories/building/default.png","parents":["Homes, Work, Others"],"primary":true}],"verified":false,"stats":{"checkinsCount":7,"usersCount":2},"hereNow":{"count":0}},{"id":"4c89f5e49ef0224b0595567b","name":"Cardiweb","contact":{},"location":{"city":"Paris","state":"Ile-de-France","lat":48.873727,"lng":2.33362,"distance":55},"categories":[{"id":"4bf58dd8d48988d124941735","name":"Offices","icon":"http://foursquare.com/img/categories/building/default.png","parents":["Homes, Work, Others"],"primary":true}],"verified":false,"stats":{"checkinsCount":5,"usersCount":3},"hereNow":{"count":0}},{"id":"4c507cf7991c20a18e014786","name":"Focus Groups","contact":{},"location":{"lat":48.872982,"lng":2.33353,"distance":31},"categories":[{"id":"4bf58dd8d48988d124941735","name":"Offices","icon":"http://foursquare.com/img/categories/building/default.png","parents":["Homes, Work, Others"],"primary":true}],"verified":false,"stats":{"checkinsCount":1,"usersCount":1},"hereNow":{"count":0}}]}]}}
That looks like JSON, not CSV. Use this JSON Framework to parse the file: http://code.google.com/p/json-framework/