JSON vs. XML using webread()

4 visualizzazioni (ultimi 30 giorni)
Jeffrey
Jeffrey il 2 Ago 2015
Commentato: Kevin Lapret il 4 Ago 2015
I have a url that I am able to get data when I set the output to xml as an optional parameter in the url, but when I set it to json, I get NaN... the url is 'http://api.eia.gov/series/?api_key=####&series_id=NG.RNGC1.D&out=json' where #### is a private key. Any ideas? I am able to get a struct array when I use the World Bank Climate example in Matlab help documentation.
  1 Commento
Kevin Lapret
Kevin Lapret il 4 Ago 2015
Not sure what you will be doing with the JSON data but if you want to convert it to a more import friendly format, there are some JSON to CSV converters like json-csv.com

Accedi per commentare.

Risposta accettata

Robert Snoeberger
Robert Snoeberger il 3 Ago 2015
The JSON text received from the web service contains the UTF-8 byte order mark (BOM), , at the beginning [1]. The BOM is causing the JSON parser to fail. You can see the BOM by calling webread with a content type of text.
>> url = 'http://api.eia.gov/series/?api_key=####&series_id=NG.RNGC1.D&out=json';
>> webread(url, weboptions('ContentType', 'text'))
ans =
{"request":{"command":"series"},"data":{"error":"No api_key. For key registration, documentation, and examples see http:\/\/www.eia.gov\/developer\/"}}
>>
[1] See byte order mark for UTF-8 encoding in Representation of byte order marks by encoding

Più risposte (1)

Jeffrey
Jeffrey il 3 Ago 2015
That's very helpful, thank you...

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by