Package com.ibm.commons.util.io.json

Source Code of com.ibm.commons.util.io.json.JsonParser$ParseCallback

/*
* © Copyright IBM Corp. 2012-2013
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*/

package com.ibm.commons.util.io.json;

import java.io.Reader;
import java.util.List;

import com.ibm.commons.util.io.json.parser.Json;


/**
* JSON parser.
* <p>
* This class provides some methods for generating parsing JSON text and create
* objects out of it. It uses a factory to deal with the actual object classes.
* </p>
* @ibm-api
*/
public class JsonParser {
 
  /**
   * Callback when a stream of json entries is parsed
   */
  public static interface ParseCallback {
    public void jsonEntry(Object o) throws JsonException;
  }

  /**
   * Check if a string a a valid JSON text.
   * @param json the JSON text to check
   * @return true if the string is a JSON object
   * @throws JsonException
   * @ibm-api
   */
  public static boolean isJson(String json) {
    try {
      Json parser = getParser(JsonEmptyFactory.instance,new java.io.StringReader(json));
      parser.parseJson();
      return true;
    } catch(Throwable ex) {
      return false;
    }
  }
  /**
   * Parse a JSON text and return an object.
   * @param factory the object factory
   * @param json the JSON text
   * @return the object created from the JSON text
   * @throws JsonException
   * @ibm-api
   */
  public static Object fromJson(JsonFactory factory, String json) throws JsonException {
    try {
      Json parser = getParser(factory,new java.io.StringReader(json));
      return parser.parseJson();
        } catch(Throwable ex) {
        throw new JsonException(ex,"Error when parsing JSON string"); // $NLS-JsonParser.ErrorwhenparsingJSONstring-1$
    }
  }

  /**
   * Parse a JSON stream and return an object.
   * @param factory the object factory
   * @param reader the JSON stream
   * @return the object created from the JSON text
   * @throws JsonException
   * @ibm-api
   */
  public static Object fromJson(JsonFactory factory, Reader reader) throws JsonException {
    try {
      Json parser = getParser(factory,reader);
      return parser.parseJson();
        } catch(Throwable ex) {
        throw new JsonException(ex,"Error when parsing JSON stream"); // $NLS-JsonParser.ErrorwhenparsingJSONstream-1$
    }
  }
 
  /**
   * Parse a JSON stream and add all the entries to a list.
   * @param factory the object factory
   * @param reader the JSON stream
   * @param cb the cllback to call for each entry
   * @return the object created from the JSON text
   * @throws JsonException
   * @ibm-api
   */
  public static void fromJson(JsonFactory factory, Reader reader, List<Object> list) throws JsonException {
    try {
      Json parser = getParser(factory,reader);
      parser.parseJsonList(list);
        } catch(Throwable ex) {
        throw new JsonException(ex,"Error when parsing JSON list");
    }
  }
 
  /**
   * Parse a JSON stream and call a function for each entry.
   * @param factory the object factory
   * @param reader the JSON stream
   * @param cb the cllback to call for each entry
   * @return the object created from the JSON text
   * @throws JsonException
   * @ibm-api
   */
  public static void fromJson(JsonFactory factory, Reader reader, ParseCallback cb) throws JsonException {
    try {
      Json parser = getParser(factory,reader);
      parser.parseJsonCallback(cb);
        } catch(Throwable ex) {
        throw new JsonException(ex,"Error when parsing JSON stream");
    }
  }

 
    private static Json getParser(JsonFactory factory, Reader r) {
        Json parser = new Json(r);
        parser.factory = factory;
        return parser;
    }
}
TOP

Related Classes of com.ibm.commons.util.io.json.JsonParser$ParseCallback

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.