Class RMJSONReader


  • public class RMJSONReader
    extends java.lang.Object
    A JSONTokener takes a source string and extracts characters and tokens from it to create RMJSONNode(s).
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  RMJSONReader.RMJSONException
      The RMJSONException is thrown by the JSON.org classes when things are amiss.
    • Constructor Summary

      Constructors 
      Constructor Description
      RMJSONReader​(java.io.Reader reader)
      Construct a JSONTokener from a reader.
      RMJSONReader​(java.lang.String s)
      Construct a JSONTokener from a string.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void back()
      Back up one character.
      static int dehexchar​(char c)
      Get the hex value of a character (base16).
      boolean end()  
      boolean more()
      Determine if the source string still contains characters that next() can consume.
      char next()
      Get the next character in the source string.
      char next​(char c)
      Consume the next character, and check that it matches a specified character.
      java.lang.String next​(int n)
      Get the next n characters.
      char nextClean()
      Get the next char in the string, skipping whitespace.
      static RMJSONNode nextNode​(RMJSONReader x)
      Creates a new node given a tokenizer.
      java.lang.String nextString​(char quote)
      Return the characters up to the next close quote character.
      java.lang.String nextTo​(char d)
      Get the text up but not including the specified character or the end of line, whichever comes first.
      java.lang.String nextTo​(java.lang.String delimiters)
      Get the text up but not including one of the specified delimiter characters or the end of line, whichever comes first.
      java.lang.Object nextValue()
      Get the next value.
      char skipTo​(char to)
      Skip characters until the next character is the requested character.
      static java.lang.Object stringToValue​(java.lang.String s)
      Try to convert a string into a number, boolean, or null.
      RMJSONReader.RMJSONException syntaxError​(java.lang.String message)
      Make a JSONException to signal a syntax error.
      java.lang.String toString()
      Make a printable string of this JSONTokener.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • RMJSONReader

        public RMJSONReader​(java.io.Reader reader)
        Construct a JSONTokener from a reader.
        Parameters:
        reader - A reader.
      • RMJSONReader

        public RMJSONReader​(java.lang.String s)
        Construct a JSONTokener from a string.
        Parameters:
        s - A source string.
    • Method Detail

      • dehexchar

        public static int dehexchar​(char c)
        Get the hex value of a character (base16).
        Parameters:
        c - A character between '0' and '9' or between 'A' and 'F' or between 'a' and 'f'.
        Returns:
        An int between 0 and 15, or -1 if c was not a hex digit.
      • end

        public boolean end()
      • next

        public char next​(char c)
                  throws RMJSONReader.RMJSONException
        Consume the next character, and check that it matches a specified character.
        Parameters:
        c - The character to match.
        Returns:
        The character.
        Throws:
        JSONException - if the character does not match.
        RMJSONReader.RMJSONException
      • next

        public java.lang.String next​(int n)
                              throws RMJSONReader.RMJSONException
        Get the next n characters.
        Parameters:
        n - The number of characters to take.
        Returns:
        A string of n characters.
        Throws:
        JSONException - Substring bounds error if there are not n characters remaining in the source string.
        RMJSONReader.RMJSONException
      • nextString

        public java.lang.String nextString​(char quote)
                                    throws RMJSONReader.RMJSONException
        Return the characters up to the next close quote character. Backslash processing is done. The formal JSON format does not allow strings in single quotes, but an implementation is allowed to accept them.
        Parameters:
        quote - The quoting character, either " (double quote) or ' (single quote).
        Returns:
        A String.
        Throws:
        JSONException - Unterminated string.
        RMJSONReader.RMJSONException
      • nextTo

        public java.lang.String nextTo​(char d)
                                throws RMJSONReader.RMJSONException
        Get the text up but not including the specified character or the end of line, whichever comes first.
        Parameters:
        d - A delimiter character.
        Returns:
        A string.
        Throws:
        RMJSONReader.RMJSONException
      • nextTo

        public java.lang.String nextTo​(java.lang.String delimiters)
                                throws RMJSONReader.RMJSONException
        Get the text up but not including one of the specified delimiter characters or the end of line, whichever comes first.
        Parameters:
        delimiters - A set of delimiter characters.
        Returns:
        A string, trimmed.
        Throws:
        RMJSONReader.RMJSONException
      • nextValue

        public java.lang.Object nextValue()
                                   throws RMJSONReader.RMJSONException
        Get the next value. The value can be a Boolean, Double, Integer, JSONArray, JSONObject, Long, or String, or the JSONObject.NULL object.
        Returns:
        An object.
        Throws:
        JSONException - If syntax error.
        RMJSONReader.RMJSONException
      • skipTo

        public char skipTo​(char to)
                    throws RMJSONReader.RMJSONException
        Skip characters until the next character is the requested character. If the requested character is not found, no characters are skipped.
        Parameters:
        to - A character to skip to.
        Returns:
        The requested character, or zero if the requested character is not found.
        Throws:
        RMJSONReader.RMJSONException
      • syntaxError

        public RMJSONReader.RMJSONException syntaxError​(java.lang.String message)
        Make a JSONException to signal a syntax error.
        Parameters:
        message - The error message.
        Returns:
        A JSONException object, suitable for throwing
      • toString

        public java.lang.String toString()
        Make a printable string of this JSONTokener.
        Overrides:
        toString in class java.lang.Object
        Returns:
        " at {index} [character {character} line {line}]"
      • stringToValue

        public static java.lang.Object stringToValue​(java.lang.String s)
        Try to convert a string into a number, boolean, or null. If the string can't be converted, return the string.
        Parameters:
        s - A String.
        Returns:
        A simple JSON value.