IT. Expert System.

Android Reference

JsonWriter


android.util

Class JsonWriter

  • All Implemented Interfaces:
    Closeable, AutoCloseable


    public final class JsonWriter
    extends Object
    implements Closeable
    Writes a JSON (RFC 4627) encoded value to a stream, one token at a time. The stream includes both literal values (strings, numbers, booleans and nulls) as well as the begin and end delimiters of objects and arrays.

    Encoding JSON

    To encode your data as JSON, create a new JsonWriter. Each JSON document must contain one top-level array or object. Call methods on the writer as you walk the structure's contents, nesting arrays and objects as necessary:

    Example

    Suppose we'd like to encode a stream of messages such as the following:
     [
       {
         "id": 912345678901,
         "text": "How do I write JSON on Android?",
         "geo": null,
         "user": {
           "name": "android_newb",
           "followers_count": 41
          }
       },
       {
         "id": 912345678902,
         "text": "@android_newb just use android.util.JsonWriter!",
         "geo": [50.454722, -104.606667],
         "user": {
           "name": "jesse",
           "followers_count": 2
         }
       }
     ]
    This code encodes the above structure:
       public void writeJsonStream(OutputStream out, List<Message> messages) throws IOException {
         JsonWriter writer = new JsonWriter(new OutputStreamWriter(out, "UTF-8"));
         writer.setIndent("  ");
         writeMessagesArray(writer, messages);
         writer.close();
       }
    
       public void writeMessagesArray(JsonWriter writer, List<Message> messages) throws IOException {
         writer.beginArray();
         for (Message message : messages) {
           writeMessage(writer, message);
         }
         writer.endArray();
       }
    
       public void writeMessage(JsonWriter writer, Message message) throws IOException {
         writer.beginObject();
         writer.name("id").value(message.getId());
         writer.name("text").value(message.getText());
         if (message.getGeo() != null) {
           writer.name("geo");
           writeDoublesArray(writer, message.getGeo());
         } else {
           writer.name("geo").nullValue();
         }
         writer.name("user");
         writeUser(writer, message.getUser());
         writer.endObject();
       }
    
       public void writeUser(JsonWriter writer, User user) throws IOException {
         writer.beginObject();
         writer.name("name").value(user.getName());
         writer.name("followers_count").value(user.getFollowersCount());
         writer.endObject();
       }
    
       public void writeDoublesArray(JsonWriter writer, List<Double> doubles) throws IOException {
         writer.beginArray();
         for (Double value : doubles) {
           writer.value(value);
         }
         writer.endArray();
       }

    Each JsonWriter may be used to write a single JSON stream. Instances of this class are not thread safe. Calls that would result in a malformed JSON string will fail with an IllegalStateException.

    • Constructor Detail

      • JsonWriter

        public JsonWriter(Writer out)
        Creates a new instance that writes a JSON-encoded stream to out. For best performance, ensure Writer is buffered; wrapping in BufferedWriter if necessary.
    • Method Detail

      • setIndent

        public void setIndent(String indent)
        Sets the indentation string to be repeated for each level of indentation in the encoded document. If indent.isEmpty() the encoded document will be compact. Otherwise the encoded document will be more human-readable.
        Parameters:
        indent - a string containing only whitespace.
      • setLenient

        public void setLenient(boolean lenient)
        Configure this writer to relax its syntax rules. By default, this writer only emits well-formed JSON as specified by RFC 4627. Setting the writer to lenient permits the following:
        • Top-level values of any type. With strict writing, the top-level value must be an object or an array.
        • Numbers may be NaNs or infinities.
      • isLenient

        public boolean isLenient()
        Returns true if this writer has relaxed syntax rules.
      • name

        public JsonWriter name(String name)
                        throws IOException
        Encodes the property name.
        Parameters:
        name - the name of the forthcoming value. May not be null.
        Returns:
        this writer.
        Throws:
        IOException
      • value

        public JsonWriter value(String value)
                         throws IOException
        Encodes value.
        Parameters:
        value - the literal string value, or null to encode a null literal.
        Returns:
        this writer.
        Throws:
        IOException
      • flush

        public void flush()
                   throws IOException
        Ensures all buffered data is written to the underlying Writer and flushes that writer.
        Throws:
        IOException


Content

Android Reference

Java basics

Java Enterprise Edition (EE)

Java Standard Edition (SE)

SQL

HTML

PHP

CSS

Java Script

MYSQL

JQUERY

VBS

REGEX

C

C++

C#

Design patterns

RFC (standard status)

RFC (proposed standard status)

RFC (draft standard status)

RFC (informational status)

RFC (experimental status)

RFC (best current practice status)

RFC (historic status)

RFC (unknown status)

IT dictionary

License.
All information of this service is derived from the free sources and is provided solely in the form of quotations. This service provides information and interfaces solely for the familiarization (not ownership) and under the "as is" condition.
Copyright 2016 © ELTASK.COM. All rights reserved.
Site is optimized for mobile devices.
Downloads: 666 / . Delta: 0.03246 с