A way to parse an input stream and create a JSON object
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Fri, 03 May 2013 10:27:06 +0200
changeset 1196fb83f58ece66
parent 1195 0930803c77d2
child 1197 51bcde3f337e
A way to parse an input stream and create a JSON object
ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/BrwsrCntxt.java
ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/ConvertTypes.java
     1.1 --- a/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/BrwsrCntxt.java	Wed May 01 07:20:06 2013 +0200
     1.2 +++ b/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/BrwsrCntxt.java	Fri May 03 10:27:06 2013 +0200
     1.3 @@ -20,6 +20,9 @@
     1.4   */
     1.5  package org.apidesign.html.ko2brwsr;
     1.6  
     1.7 +import java.io.IOException;
     1.8 +import java.io.InputStream;
     1.9 +import java.io.InputStreamReader;
    1.10  import net.java.html.json.Context;
    1.11  import org.apidesign.html.json.spi.ContextBuilder;
    1.12  import org.apidesign.html.json.spi.FunctionBinding;
    1.13 @@ -102,4 +105,18 @@
    1.14      public <M> M toModel(Class<M> modelClass, Object data) {
    1.15          return modelClass.cast(data);
    1.16      }
    1.17 +
    1.18 +    @Override
    1.19 +    public Object toJSON(InputStream is) throws IOException {
    1.20 +        StringBuilder sb = new StringBuilder();
    1.21 +        InputStreamReader r = new InputStreamReader(is);
    1.22 +        for (;;) {
    1.23 +            int ch = r.read();
    1.24 +            if (ch == -1) {
    1.25 +                break;
    1.26 +            }
    1.27 +            sb.append((char)ch);
    1.28 +        }
    1.29 +        return ConvertTypes.parse(sb.toString());
    1.30 +    }
    1.31  }
     2.1 --- a/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/ConvertTypes.java	Wed May 01 07:20:06 2013 +0200
     2.2 +++ b/ko-bck2brwsr/src/main/java/org/apidesign/html/ko2brwsr/ConvertTypes.java	Fri May 03 10:27:06 2013 +0200
     2.3 @@ -107,6 +107,11 @@
     2.4          return true;
     2.5      }
     2.6      
     2.7 +    @JavaScriptBody(args = { "s" }, body = "return eval('(' + s + ')');")
     2.8 +    static Object parse(String s) {
     2.9 +        return s;
    2.10 +    }
    2.11 +    
    2.12      @JavaScriptBody(args = { "url", "arr", "callback" }, body = ""
    2.13          + "var request = new XMLHttpRequest();\n"
    2.14          + "request.open('GET', url, true);\n"