Maybe the content is not properly stored in the JSON on github' side? But you can use base64 in `accept:` to make it work.
json := STONJSON fromString: (ZnClient new url: 'https://api.github.com/gists/5503544'; accept: 'application/vnd.github.v3.base64+json'; get). b64 := ((json at: 'files') at: 'thumbnail.png') at: 'content'. PNGReadWriter formFromStream: (Base64MimeConverter mimeDecodeToBytes: content readStream). Peter On Wed, Apr 26, 2017 at 04:50:04PM +0200, Sven Van Caekenberghe wrote: > I am puzzled by how they actually encoded the PNG as a String, I tried a > couple of alternatives but I could not get binary data out of it so that it > parsed successfully as PNG. > > If I would have to encode binary data in JSON I would use Base64 encoding > (but alternatives exist). > > > On 24 Apr 2017, at 20:36, Juraj Kubelka <juraj.kube...@icloud.com> wrote: > > > > Hi, > > > > I was playing with GitHub Gist API and I have queried the following Gist: > > https://gist.github.com/mbostock/5503544 > > I was interested how the PNG image is returned: > > https://gist.github.com/mbostock/5503544#file-thumbnail-png > > > > I can obtain the whole Gist executing: > > > > STONJSON fromString: > > (ZnClient new > > url: 'https://api.github.com/gists/5503544'; > > accept: 'application/vnd.github.v3+json'; > > get). > > > > I can get PNG contents executing: > > > > pngData := (ZnEasy get: > > ((((STONJSON fromString: > > (ZnClient new > > url: 'https://api.github.com/gists/5503544'; > > accept: 'application/vnd.github.v3+json'; > > get)) at: 'files') at: 'thumbnail.png') at: 'raw_url')) > > contents. > > PNGReadWriter formFromStream: rawPng readStream. > > > > But the PNG image is part of the Gist query and can be retrieved by: > > > > pngContent := ((((STONJSON fromString: > > (ZnClient new > > url: 'https://api.github.com/gists/5503544'; > > accept: 'application/vnd.github.v3+json'; > > get)) at: 'files') at: 'thumbnail.png') at: 'content'). > > > > "As pngContent is a WideString, I cannot use:" > > PNGReadWriter formFromStream: pngContent readStream. > > > > How can I read the PNG image from the pngContent? Any idea? > > And the reverse question: How can I send the PNG bytes using JSON format? > > > > Thanks! > > Juraj > > > >