类com.google.gson.stream.MalformedJsonException源码实例Demo

下面列出了怎么用com.google.gson.stream.MalformedJsonException的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: MiBandDecompiled   文件: Gson.java
private static void a(Object obj, JsonReader jsonreader)
{
    if (obj != null)
    {
        try
        {
            if (jsonreader.peek() != JsonToken.END_DOCUMENT)
            {
                throw new JsonIOException("JSON document was not fully consumed.");
            }
        }
        catch (MalformedJsonException malformedjsonexception)
        {
            throw new JsonSyntaxException(malformedjsonexception);
        }
        catch (IOException ioexception)
        {
            throw new JsonIOException(ioexception);
        }
    }
}
 
源代码2 项目: MiBandDecompiled   文件: JsonParser.java
public JsonElement parse(Reader reader)
{
    JsonElement jsonelement;
    try
    {
        JsonReader jsonreader = new JsonReader(reader);
        jsonelement = parse(jsonreader);
        if (!jsonelement.isJsonNull() && jsonreader.peek() != JsonToken.END_DOCUMENT)
        {
            throw new JsonSyntaxException("Did not consume the entire document.");
        }
    }
    catch (MalformedJsonException malformedjsonexception)
    {
        throw new JsonSyntaxException(malformedjsonexception);
    }
    catch (IOException ioexception)
    {
        throw new JsonIOException(ioexception);
    }
    catch (NumberFormatException numberformatexception)
    {
        throw new JsonSyntaxException(numberformatexception);
    }
    return jsonelement;
}
 
源代码3 项目: FXMaps   文件: MapStore.java
/**
 * Called to load the serialized {@link Routes} into this store.
 * 
 * @return  a {@code RouteStore} containing previously serialized {@link Route}s
 * or an empty store if there were no Routes previously persisted.
 * 
 * @param path  the path to the persistent store json file
 */
public static MapStore load(String path) {
    path = path == null ? DEFAULT_STORE_PATH : path;
    
    try {
        Gson gson = new Gson();
        MapStore mapStore = gson.fromJson(
            Files.newBufferedReader(FileSystems.getDefault().getPath(path)), MapStore.class);
        
        for(String mapName : mapStore.getMaps().keySet()) {
            mapStore.selectMap(mapName);
            mapStore.postDeserialize();
        }
       
        mapStore.storePath = path;
        
        return mapStore;
    }catch(MalformedJsonException m) {
        System.out.println(m.getMessage());
        File f = new File(path);
        f.delete();
    }catch(Exception e) {
        System.out.println("No map store found, creating new map store.");
    }
    return new MapStore();
}
 
源代码4 项目: arcusplatform   文件: IpcdJsonReader.java
/**
 * Returns the {@link com.google.gson.stream.JsonToken#NUMBER double} value
 * of the next token, consuming it. If the next token is a string, this
 * method will attempt to parse it as a double using
 * {@link Double#parseDouble(String)}.
 *
 * @throws IllegalStateException
 *            if the next token is not a literal value.
 * @throws NumberFormatException
 *            if the next literal value cannot be parsed as a double, or is
 *            non-finite.
 */
public double nextDouble() throws IOException {
   int p = peeked;
   if (p == PEEKED_NONE) {
      p = doPeek();
   }

   if (p == PEEKED_LONG) {
      peeked = PEEKED_NONE;
      pathIndices[stackSize - 1]++;
      return (double) peekedLong;
   }

   if (p == PEEKED_NUMBER) {
      peekedString = new String(buffer, pos, peekedNumberLength);
      pos += peekedNumberLength;
   } else if (p == PEEKED_SINGLE_QUOTED || p == PEEKED_DOUBLE_QUOTED) {
      peekedString = nextQuotedValue(p == PEEKED_SINGLE_QUOTED ? '\'' : '"');
   } else if (p == PEEKED_UNQUOTED) {
      peekedString = nextUnquotedValue();
   } else if (p != PEEKED_BUFFERED) {
      throw new IllegalStateException("Expected a double but was " + peek() + " at line " + getLineNumber() + " column " + getColumnNumber() + " path " + getPath());
   }

   peeked = PEEKED_BUFFERED;
   double result = Double.parseDouble(peekedString); // don't catch this NumberFormatException.
   if (!isLenient() && (Double.isNaN(result) || Double.isInfinite(result))) {
      throw new MalformedJsonException("JSON forbids NaN and infinities: " + result + " at line " + getLineNumber() + " column " + getColumnNumber() + " path " + getPath());
   }
   peekedString = null;
   peeked = PEEKED_NONE;
   pathIndices[stackSize - 1]++;
   return result;
}
 
static ResponseError handleError(Throwable e) {
    ResponseError error;
    if (e instanceof HttpException) {
        HttpException exception = (HttpException) e;
        return handleHttpError(exception);
    } else if (e instanceof JsonParseException
            || e instanceof JSONException
            || e instanceof ParseException || e instanceof MalformedJsonException) {
        error = new ResponseError(e, ERROR.PARSE_ERROR);
        error.message = "解析响应数据错误";
        return error;
    } else if (e instanceof ConnectException) {
        error = new ResponseError(e, ERROR.NETWORK_ERROR);
        error.message = "连接失败,请重试";
        return error;
    } else if (e instanceof javax.net.ssl.SSLHandshakeException) {
        error = new ResponseError(e, ERROR.SSL_ERROR);
        error.message = "证书验证失败";
        return error;
    } else if (e instanceof ConnectTimeoutException) {
        error = new ResponseError(e, ERROR.TIMEOUT_ERROR);
        error.message = "连接超时,请重试";
        return error;
    } else if (e instanceof java.net.SocketTimeoutException) {
        error = new ResponseError(e, ERROR.TIMEOUT_ERROR);
        error.message = "请求超时,请重试";
        return error;
    } else {
        error = new ResponseError(e, ERROR.UNKNOWN);
        error.message = e.getMessage();
        return error;
    }
}
 
源代码6 项目: homeassist   文件: AlwaysListTypeAdapterFactory.java
@Override
public List<E> read(final JsonReader in) throws IOException {
    // This is where we detect the list "type"
    final List<E> list = new ArrayList<>();
    final JsonToken token = in.peek();
    switch (token) {
        case BEGIN_ARRAY:
            // If it's a regular list, just consume [, <all elements>, and ]
            in.beginArray();
            while (in.hasNext()) {
                list.add(elementTypeAdapter.read(in));
            }
            in.endArray();
            break;
        case BEGIN_OBJECT:
        case STRING:
        case NUMBER:
        case BOOLEAN:
            // An object or a primitive? Just add the current value to the result list
            list.add(elementTypeAdapter.read(in));
            break;
        case NULL:
            throw new AssertionError("Must never happen: check if the type adapter configured with .nullSafe()");
        case NAME:
        case END_ARRAY:
        case END_OBJECT:
        case END_DOCUMENT:
            throw new MalformedJsonException("Unexpected token: " + token);
        default:
            throw new AssertionError("Must never happen: " + token);
    }
    return list;
}
 
/** returns the lower 64 bits of the trace ID */
@Override public String call(Tuple2<String, String> pair) throws IOException {
  JsonReader reader = new JsonReader(new StringReader(pair._2));
  reader.beginObject();
  while (reader.hasNext()) {
    String nextName = reader.nextName();
    if (nextName.equals("traceId")) {
      String traceId = reader.nextString();
      return traceId.length() > 16 ? traceId.substring(traceId.length() - 16) : traceId;
    } else {
      reader.skipValue();
    }
  }
  throw new MalformedJsonException("no traceId in " + pair);
}
 
源代码8 项目: FXMaps   文件: Route.java
/**
 * Called following deserialization to load the observable list. The observable
 * list cannot be serialized using the current method, so we use a simple list
 * for serialization and then copy the data over, after deserialization.
 */
public void postDeserialize() throws MalformedJsonException {
    observableDelegate = FXCollections.observableArrayList(delegate);
    delegate.clear();
    
    try {
        createUnderlying();
    }catch(NullPointerException npe) {
        throw new MalformedJsonException(npe.getMessage());
    }
}
 
源代码9 项目: grpc-nebula-java   文件: JsonParserTest.java
@Test
public void nanFails() throws IOException {
  thrown.expect(MalformedJsonException.class);

  JsonParser.parse("NaN");
}
 
源代码10 项目: grpc-nebula-java   文件: JsonParserTest.java
@Test
public void objectEarlyEnd() throws IOException {
  thrown.expect(MalformedJsonException.class);

  JsonParser.parse("{foo:}");
}
 
源代码11 项目: grpc-nebula-java   文件: JsonParserTest.java
@Test
public void arrayMissingElement() throws IOException {
  thrown.expect(MalformedJsonException.class);

  JsonParser.parse("[1, 2, ]");
}
 
源代码12 项目: grpc-nebula-java   文件: JsonParserTest.java
@Test
public void objectMissingElement() throws IOException {
  thrown.expect(MalformedJsonException.class);

  JsonParser.parse("{1: ");
}
 
源代码13 项目: grpc-nebula-java   文件: JsonParserTest.java
@Test
public void objectNoName() throws IOException {
  thrown.expect(MalformedJsonException.class);

  JsonParser.parse("{: 1");
}
 
源代码14 项目: TikTok   文件: ExceptionHandle.java
public static ResponseThrowable handleException(Throwable e) {
    ResponseThrowable ex;
    if (e instanceof HttpException) {
        HttpException httpException = (HttpException) e;
        ex = new ResponseThrowable(e, ERROR.HTTP_ERROR);
        switch (httpException.code()) {
            case UNAUTHORIZED:
                ex.message = "操作未授权";
                break;
            case FORBIDDEN:
                ex.message = "请求被拒绝";
                break;
            case NOT_FOUND:
                ex.message = "资源不存在";
                break;
            case REQUEST_TIMEOUT:
                ex.message = "服务器执行超时";
                break;
            case INTERNAL_SERVER_ERROR:
                ex.message = "服务器内部错误";
                break;
            case SERVICE_UNAVAILABLE:
                ex.message = "服务器不可用";
                break;
            default:
                ex.message = "网络错误";
                break;
        }
        return ex;
    } else if (e instanceof JsonParseException
            || e instanceof JSONException
            || e instanceof ParseException || e instanceof MalformedJsonException) {
        ex = new ResponseThrowable(e, ERROR.PARSE_ERROR);
        ex.message = "解析错误";
        return ex;
    } else if (e instanceof ConnectException) {
        ex = new ResponseThrowable(e, ERROR.NETWORD_ERROR);
        ex.message = "连接失败";
        return ex;
    } else if (e instanceof javax.net.ssl.SSLHandshakeException) {
        ex = new ResponseThrowable(e, ERROR.SSL_ERROR);
        ex.message = "证书验证失败";
        return ex;
    } else if (e instanceof ConnectTimeoutException) {
        ex = new ResponseThrowable(e, ERROR.TIMEOUT_ERROR);
        ex.message = "连接超时";
        return ex;
    } else if (e instanceof java.net.SocketTimeoutException) {
        ex = new ResponseThrowable(e, ERROR.TIMEOUT_ERROR);
        ex.message = "连接超时";
        return ex;
    } else {
        ex = new ResponseThrowable(e, ERROR.UNKNOWN);
        ex.message = "未知错误";
        return ex;
    }
}
 
源代码15 项目: RetrofitGO   文件: RxHelper.java
public static Flowable<Error> handleError(final Throwable e) {
        return Flowable.create(emitter -> {
            e.printStackTrace();
            if (e instanceof ConnectException || e instanceof UnknownHostException) {
                emitter.onNext(ErrorHelper.netError());
            } else if (e instanceof HttpException) {
                emitter.onNext(ErrorHelper.httpError());
                //eos的接口查询失败竟然是500
//                Request request = Objects.requireNonNull(((HttpException) e).response().raw().networkResponse()).request();
//                if(request!=null){
//                    HttpUrl url = request.url();
//                    URI uri = url.uri();
//                    String host = uri.getHost();
//                    if(host.equals(getEosApiHost())){
//                        emitter.onNext(new Error(EOS_ERROR,e.getMessage()));
//                    }else{
//                        emitter.onNext(ErrorHelper.httpError());
//                    }
//                }
            } else if (e instanceof SocketTimeoutException) {
                emitter.onNext(ErrorHelper.timeout());
            } else if (e instanceof SSLException) {
                emitter.onNext(ErrorHelper.sslError());
            } else if (e instanceof MalformedJsonException || e instanceof JSONException ||
                    e instanceof JsonParseException) {
                emitter.onNext(ErrorHelper.parseError());
            } else if (e instanceof ClassCastException) {
                emitter.onNext(ErrorHelper.castError());
            } else if (e instanceof ApiException) {
                // 接口请求失败
                ApiException apiException = (ApiException) e;
                if (apiException.getError() == ErrorHelper.TOKEN_EXPIRED
                        && RetrofitClient.get().getAuthCallback() != null) {
                    RetrofitClient.get().getAuthCallback().onTokenExpired(apiException.getMsg());
                } else {
                    emitter.onNext(ErrorHelper.apiError(apiException.getError(), apiException.getMsg()));
                }
            } else if (e instanceof IOException) {
                emitter.onNext(ErrorHelper.parseError());
            } else {
                // 未知错误
                emitter.onNext(ErrorHelper.parseError());
            }
        }, BackpressureStrategy.BUFFER);
    }
 
源代码16 项目: android   文件: ErrorWrapper.java
static Throwable wrapError(Retrofit retrofit, Throwable e) {
    if (e instanceof HttpException) {
        HttpException he = (HttpException) e;

        ErrorResponse r = parseError(retrofit, he.response());

        if (r != null && r.message != null) {
            if (r.message.contains("No provider support found for coordinate")) {
                UnsupportedCoordinatesException uce = new UnsupportedCoordinatesException(r.message, e);
                uce.setProviderName(r.provider);

                return uce;
            }

            if (r.message.contains("Unknown place code")) {
                UnknownPlaceCodeException upce = new UnknownPlaceCodeException(r.message, e);
                upce.setProviderName(r.provider);

                return upce;
            }

            if (r.message.contains("Data format at e-solat") || r.message.contains("Error connecting to")) {
                PrayerProviderException ppe = new PrayerProviderException(r.message, e);

                if (!r.hasProviderName()) {
                    ppe.setProviderName("JAKIM");
                } else {
                    ppe.setProviderName(r.provider);
                }

                return ppe;
            }
        }

        return new ServerException("Server error " + he.code(), he);
    }

    if (e instanceof MalformedJsonException) {
        return new ServerException("Malformed JSON", e);
    }

    return e;
}
 
源代码17 项目: lsp4j   文件: MessageTypeAdapter.java
@Override
public Message read(JsonReader in) throws IOException, JsonIOException, JsonSyntaxException {
	if (in.peek() == JsonToken.NULL) {
		in.nextNull();
		return null;
	}
	
	in.beginObject();
	String jsonrpc = null, method = null;
	Either<String, Number> id = null;
	Object rawParams = null;
	Object rawResult = null;
	ResponseError responseError = null;
	try {
		
		while (in.hasNext()) {
			String name = in.nextName();
			switch (name) {
			case "jsonrpc": {
				jsonrpc = in.nextString();
				break;
			}
			case "id": {
				if (in.peek() == JsonToken.NUMBER)
					id = Either.forRight(in.nextInt());
				else
					id = Either.forLeft(in.nextString());
				break;
			}
			case "method": {
				method = in.nextString();
				break;
			}
			case "params": {
				rawParams = parseParams(in, method);
				break;
			}
			case "result": {
				rawResult = parseResult(in, id != null ? id.get().toString() : null);
				break;
			}
			case "error": {
				responseError = gson.fromJson(in, ResponseError.class);
				break;
			}
			default:
				in.skipValue();
			}
		}
		Object params = parseParams(rawParams, method);
		Object result = parseResult(rawResult, id != null ? id.get().toString() : null);
		
		in.endObject();
		return createMessage(jsonrpc, id, method, params, result, responseError);
		
	} catch (JsonSyntaxException | MalformedJsonException | EOFException exception) {
		if (id != null || method != null) {
			// Create a message and bundle it to an exception with an issue that wraps the original exception
			Message message = createMessage(jsonrpc, id, method, rawParams, rawResult, responseError);
			MessageIssue issue = new MessageIssue("Message could not be parsed.", ResponseErrorCode.ParseError.getValue(), exception);
			throw new MessageIssueException(message, issue);
		} else {
			throw exception;
		}
	}
}
 
源代码18 项目: FXMaps   文件: MapStore.java
/**
 * Called following deserialization to load the observable list. The observable
 * list cannot be serialized using the current method, so we use a simple list
 * for serialization and then copy the data over, after deserialization.
 */
public void postDeserialize() throws MalformedJsonException {
    for(Route r : maps.get(selectedMap).getRoutes()) {
        r.postDeserialize();
    }
}
 
源代码19 项目: grpc-java   文件: JsonParserTest.java
@Test
public void nanFails() throws IOException {
  thrown.expect(MalformedJsonException.class);

  JsonParser.parse("NaN");
}
 
源代码20 项目: grpc-java   文件: JsonParserTest.java
@Test
public void objectEarlyEnd() throws IOException {
  thrown.expect(MalformedJsonException.class);

  JsonParser.parse("{foo:}");
}
 
源代码21 项目: grpc-java   文件: JsonParserTest.java
@Test
public void arrayMissingElement() throws IOException {
  thrown.expect(MalformedJsonException.class);

  JsonParser.parse("[1, 2, ]");
}
 
源代码22 项目: grpc-java   文件: JsonParserTest.java
@Test
public void objectMissingElement() throws IOException {
  thrown.expect(MalformedJsonException.class);

  JsonParser.parse("{1: ");
}
 
源代码23 项目: grpc-java   文件: JsonParserTest.java
@Test
public void objectNoName() throws IOException {
  thrown.expect(MalformedJsonException.class);

  JsonParser.parse("{: 1");
}
 
源代码24 项目: arcusplatform   文件: IpcdJsonReader.java
/**
 * Throws a new IO exception with the given message and a context snippet
 * with this reader's content.
 */
private IOException syntaxError(String message) throws IOException {
   throw new MalformedJsonException(message + " at line " + getLineNumber() + " column " + getColumnNumber() + " path " + getPath());
}
 
 类所在包
 同包方法