Java 可以停止Gson解析吗?

Java 可以停止Gson解析吗?,java,android,parsing,gson,Java,Android,Parsing,Gson,我只是注意到Gson的性能并不是我所期望的,一些解析过程花费了很多时间。我不是在寻找另一个解决方案,我的应用程序相当大,我不想用其他类似jackson的东西来改变它的结构 我的Android应用程序允许用户使用back键停止http请求。我的代码中止了请求,基本上停止了任务。问题是,它需要等待方法gson.fromJson(result)中止任务。该指令可以持续几秒钟 是否有任何方法可以告诉gson对象中止解析过程?也许您可以尝试将单个gson调用拆分为几个子呼叫(因为当请求执行数秒时,解析的数

我只是注意到Gson的性能并不是我所期望的,一些解析过程花费了很多时间。我不是在寻找另一个解决方案,我的应用程序相当大,我不想用其他类似jackson的东西来改变它的结构

我的Android应用程序允许用户使用back键停止http请求。我的代码中止了请求,基本上停止了任务。问题是,它需要等待方法
gson.fromJson(result)
中止任务。该指令可以持续几秒钟


是否有任何方法可以告诉gson对象中止解析过程?

也许您可以尝试将单个gson调用拆分为几个子呼叫(因为当请求执行数秒时,解析的数据似乎很大)


基本上,我的意思是单独解析每个数组元素,或者逐个解析类的属性,而不是在一次调用中完成全部工作。因此,您可以更轻松地中断该过程。

我不熟悉GSON,但您可以关闭底层的JSON数据流(Inpustream),以结束解析过程,并发现异常。在输入数据可以是流的情况下,这应该是可行的。我刚刚查看了GSON API,fromJson方法采用了一个Reader参数,可以关闭该参数。 在线程中运行它并调用thread.stop()也是一种不好的方法。

AFAIK`Gson.fromJson()'是一种在Java中无法停止的阻塞方法调用

在后台线程中运行解析。在这种情况下,youn可以让它运行,因为它不会影响应用程序的UI部分


为此使用AsynTask。添加一个字段
cancelled
,通知任务已取消,这样它就不会在结束时更新UI。

您可能可以通过缓冲响应来完成此操作,并且只在完成所有操作后进行解析;或者,停止处理被取消。

它没有一些类似于sax的解析吗?没有。它在条目中包含一个java.io.Reader和一个类模型,并从读取器中包含的数据返回一个模型实例。但是,您将如何剪切java.io.Reader对象?没有看到该对象;-)我会尝试将其读入字符串并进行解析,但首先我肯定会尝试,因为这可能是我在reader.close()中没有想到的更好的想法。好主意,谢谢!我刚刚测试了在读卡器解析时关闭读卡器,它正常工作了!正如预期的那样,它抛出了一个异常。干杯这就是我目前正在做的,我只是想提高表现。谢谢你的回答,彼得。