JSON vs. XML using webread()

4 vues (au cours des 30 derniers jours)
Jeffrey
Jeffrey le 2 Août 2015
Commenté : Kevin Lapret le 4 Août 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 commentaire
Kevin Lapret
Kevin Lapret le 4 Août 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

Connectez-vous pour commenter.

Réponse acceptée

Robert Snoeberger
Robert Snoeberger le 3 Août 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

Plus de réponses (1)

Jeffrey
Jeffrey le 3 Août 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