Package com.firefly.utils.json.exception

Examples of com.firefly.utils.json.exception.JsonException


  }

  @Override
  public char[] readField(char[] chs) {
    if(!isString())
      throw new JsonException("read field error");
     
    int cur = pos;
    int len = chs.length;
    boolean skip = true;
   
View Full Code Here


  }
 
  @Override
  public char[] readChars() {
    if(!isString())
      throw new JsonException("read field error");
   
    int start = pos;
    for(;;) {
      char c = (char)read();
      if(c == '"')
View Full Code Here

        ch = readAndSkipBlank();
        if(ch == ']')
          break;
       
        if(ch != ',')
          throw new JsonException("json string array format error");
      }
      break;
    case '{': // 跳过对象
      for(;;) {
        if(isEmptyObject())
          break;
       
        readChars();
        if(!isColon())
          throw new JsonException("json string object format error");
       
        skipValue();
        ch = readAndSkipBlank();
        if(ch == '}')
          break;
       
        if(ch != ',')
          throw new JsonException("json string object format error");
      }
      break;

    default: // 跳过数字或者null
      for(;;) {
View Full Code Here

  public String readString() {
    if(isNull())
      return null;
   
    if(!isString())
      throw new JsonException("read string error");
   
    JsonStringWriter writer = new JsonStringWriter();
    String ret = null;
   
    int cur = pos;
View Full Code Here

    return ret;
  }

  @Override
  public int read(char[] cbuf, int off, int len) throws IOException {
    throw new JsonException("method not implements!");
  }
View Full Code Here

            Class<?> type =  method.getParameterTypes()[0];
           
            if (Collection.class.isAssignableFrom(type)) {
              Type[] types = method.getGenericParameterTypes();
              if(types.length != 1 || !(types[0] instanceof ParameterizedType))
                throw new JsonException("not support the " + method);
             
              ParameterizedType paramType = (ParameterizedType) types[0];
              Type[] types2 = paramType.getActualTypeArguments();
              if(types2.length != 1)
                throw new JsonException("not support the " + method);
             
              Type elementType = types2[0];
              parserMetaInfo.setType(ComplexTypeParser.getImplClass(type));
              parserMetaInfo.setParser(new CollectionParser(elementType));
            } else if (Map.class.isAssignableFrom(type)) { // Map元信息构造
              Type[] types = method.getGenericParameterTypes();
              if(types.length != 1 || !(types[0] instanceof ParameterizedType))
                throw new JsonException("not support the " + method);
             
              ParameterizedType paramType = (ParameterizedType) types[0];
              Type[] types2 = paramType.getActualTypeArguments();
              if(types2.length != 2)
                throw new JsonException("not support the " + method);
             
              Type key = types2[0];
              if (!((key instanceof Class) && key == String.class))
                throw new JsonException("not support the " + method);
             
              Type elementType = types2[1];
              parserMetaInfo.setType(ComplexTypeParser.getImplClass(type));
              parserMetaInfo.setParser(new MapParser(elementType));
            } else { // 获取对象、枚举或者数组Parser
              parserMetaInfo.setType(type);
              parserMetaInfo.setParser(ParserStateMachine.getParser(type));
            }
            fieldSet.add(parserMetaInfo);
    }
   
    for(Field field : clazz.getFields()) { // public字段反序列化构造
      if(Modifier.isTransient(field.getModifiers()) || field.isAnnotationPresent(Transient.class) || Modifier.isStatic(field.getModifiers()))
        continue;
     
      field.setAccessible(true);
     
      ParserMetaInfo parserMetaInfo = new ParserMetaInfo();
            parserMetaInfo.setPropertyNameString(field.getName());
            parserMetaInfo.setPropertyInvoke(new FieldInvoke(field));
           
            Class<?> type = field.getType();
            if (Collection.class.isAssignableFrom(type)) {
              Type fieldType = field.getGenericType();
              if(!(fieldType instanceof ParameterizedType))
                throw new JsonException("not support the " + field);
             
              ParameterizedType paramType = (ParameterizedType)fieldType;
              Type[] types2 = paramType.getActualTypeArguments();
              if(types2.length != 1)
                throw new JsonException("not support the " + field);
             
              Type elementType = types2[0];
              parserMetaInfo.setType(ComplexTypeParser.getImplClass(type));
              parserMetaInfo.setParser(new CollectionParser(elementType));
            } else if (Map.class.isAssignableFrom(type)) { // Map元信息构造
              Type fieldType = field.getGenericType();
              if(!(fieldType instanceof ParameterizedType))
                throw new JsonException("not support the " + field);
             
              ParameterizedType paramType = (ParameterizedType) fieldType;
              Type[] types2 = paramType.getActualTypeArguments();
              if(types2.length != 2)
                throw new JsonException("not support the " + field);
             
              Type key = types2[0];
              if (!((key instanceof Class) && key == String.class))
                throw new JsonException("not support the " + field);
             
              Type elementType = types2[1];
              parserMetaInfo.setType(ComplexTypeParser.getImplClass(type));
              parserMetaInfo.setParser(new MapParser(elementType));
            } else { // 获取对象、枚举或者数组Parser
              parserMetaInfo.setType(type);
              parserMetaInfo.setParser(ParserStateMachine.getParser(type));
            }
            fieldSet.add(parserMetaInfo);
    }
   
    parserMetaInfos = fieldSet.toArray(EMPTY_ARRAY);
    if(parserMetaInfos.length <= 0)
      throw new JsonException("not support the " + clazz.getName());
    return parserMetaInfos;
  }
View Full Code Here

TOP

Related Classes of com.firefly.utils.json.exception.JsonException

Copyright © 2018 www.massapicom. 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.