You can wrap result value into another language src block like this:

#+begin_src ruby :results code :wrap src shell
puts "echo 'hello'"
#+end_src

#+RESULTS:
#+begin_src shell
echo 'hello'
#+end_src

Same for JSON by changed `:wrap src shell` into `wrap json`. But you need the value is JSON.

Isaw you mentioned want ob-sql support JSON return type. I guess it need to be implemented in ob-sql.Or you can use `:post` to convert result to JSON. Or use `advice-add` to add a function to convert result to JSON.


On 03/29/2018 06:30 AM, John Kitchin wrote:
If you can get ob-sql to output data in tabular form (if it is not nested) you can do something like this:

#+name: tabular
#+BEGIN_SRC python :results value
d = [['type', 'test'], ['format', 'json']]
return d
#+END_SRC

#+RESULTS: tabular
| type   | test |
| format | json |

#+BEGIN_SRC emacs-lisp :var data=tabular :wrap json
(json-encode data)
#+END_SRC

#+RESULTS:
#+BEGIN_json
{"type":["test"],"format":["json"]}
#+END_json

If the data is nested, then you can see if there is a way to output a lisp readable string:

#+name: my-data
#+BEGIN_SRC python :results output
print('((type . test) (format . json))')
#+END_SRC

#+RESULTS: my-data
: ((type . test) (format . json))



#+BEGIN_SRC emacs-lisp :var data=my-data :wrap json
(json-encode (read data))
#+END_SRC

#+RESULTS:
#+BEGIN_json
{"type":"test","format":"json"}
#+END_json



John

-----------------------------------
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu


On Wed, Mar 28, 2018 at 2:19 PM, <agzam.ibragi...@gmail.com <mailto:agzam.ibragi...@gmail.com>> wrote:

    Hmm, it works for emacs-lisp, however I specifically wanted to use
    it with ob-sql, and can't find a way.

    On Wed, Mar 28, 2018 at 2:05 PM John Kitchin
    <jkitc...@andrew.cmu.edu <mailto:jkitc...@andrew.cmu.edu>> wrote:

        Does this do what you want:

        #+BEGIN_SRC emacs-lisp :wrap json
        (json-encode '((type . "text")))
        #+END_SRC

        #+RESULTS:
        #+BEGIN_json
        {"type":"text"}
        #+END_json

        John

        -----------------------------------
        Professor John Kitchin
        Doherty Hall A207F
        Department of Chemical Engineering
        Carnegie Mellon University
        Pittsburgh, PA 15213
        412-268-7803 <tel:%28412%29%20268-7803>
        @johnkitchin
        http://kitchingroup.cheme.cmu.edu
        <http://kitchingroup.cheme.cmu.edu>


        On Wed, Mar 28, 2018 at 1:42 PM, Ag Ibragimov
        <agzam.ibragi...@gmail.com <mailto:agzam.ibragi...@gmail.com>>
        wrote:


            Sorry, I don't know the best medium to convey ideas and
            I'm afraid not
            qualified (familiar with org-mode codebase) to submit a PR
            for this.
            I wonder how difficult would be to
            add the possibility to have babel src block results to be
            rendered as
            json?
            Basically a new result type
            https://orgmode.org/manual/results.html#results
            <https://orgmode.org/manual/results.html#results>

            Thank you.




Reply via email to