小编And*_*ath的帖子

Android:动态传递模型类以改进回调

通过改造将json响应映射到pojo通常我们这样做

@POST
Call<User> getDataFromServer(@Url String url, @Body HashMap<String,Object> hashMap);

ApiCalls api = retrofit.create(ApiCalls.class);
    Call<User> call = api.getDataFromServer(StringConstants.URL,hashMap);
    call.enqueue(new Callback<User>() {
         //Response and failure callbacks
    }
Run Code Online (Sandbox Code Playgroud)

用户是我的Pojo课程.但是对于每个其他请求,我需要制作不同的pojo并为改进调用编写相同的代码.我想制作一个单独的方法来调用api并传递相应的pojo类来改进调用.像这样

ApiCalls api = retrofit.create(ApiCalls.class);
Call<*ClassPassed*> call = api.getDataFromServer(StringConstants.URL,hashMap);
call.enqueue(new Callback<*ClassPassed*>() {
     //Response and failure callbacks
}
Run Code Online (Sandbox Code Playgroud)

所以现在我可以将任何pojo类转换为单个方法并获得响应.这只是为了避免一次又一次地重写相同的代码.这是可能的

更新 要详细说明:

假设我需要提出两个请求.第一个是获取userDetails,另一个是patientDetails.所以我必须创建两个模型类User和Patient.所以在改造api我会有类似的东西

@POST
Call<User> getDataFromServer(@Url String url, @Body HashMap<String,Object> hashMap);

@POST
Call<Patient> getDataFromServer(@Url String url, @Body HashMap<String,Object> hashMap);
Run Code Online (Sandbox Code Playgroud)

在我的FragmentUser和FragmentPatient类中,我将这样做

  ApiCalls api = retrofit.create(ApiCalls.class);
Call<User> call = api.getDataFromServer(StringConstants.URL,hashMap);
call.enqueue(new Callback<User>() {
     //Response and failure callbacks
}

ApiCalls …
Run Code Online (Sandbox Code Playgroud)

android pojo retrofit retrofit2

21
推荐指数
3
解决办法
2万
查看次数

从 pdf 或图像格式的发票中提取数据

我正在开发发票解析器,它从 pdf 或图像格式的发票中提取数据。它适用于具有非表格数据的简单 pdf,但提供了大量输出数据以使用包含表格的 pdf 进行处理。我无法获得有效的通用解决方案为此,我尝试了以下库

Invoice2Data : 基于模板。到目前为止,它在json格式中给出了相当好的结果。但是包含动态表的复杂pdf的模板创建很复杂。

塔布拉:表提取是基于表中的坐标是extracted.If数据表中的增加在这种情况下,给出错误的结果表长度的增加并因此坐标changes.So。

Pdftotext:它将任何 pdf 转换为文本,但格式需要我们不想要的大量解析。

Aws_Textract 和 Elis_Rossum_Ai:以 json 格式给出所有数据。但如果表列包含多行,那么 json 解析变得困难。即使给出的 json 解析的大小也很大。

正方体:与 pdftotext.Complex pdf 相同,不可解析。

除了所有这些或与上述库的组合之外,是否有人能够解析复杂的 pdf 数据,请帮忙。

ocr parsing invoice pdftotext tabula

6
推荐指数
1
解决办法
2145
查看次数

Android:使用新数据更新recyclerview

我在我的应用程序中有一个recyclerview.第一次打开片段时它会发出api请求并更新recyclerview.当我再次打开相同的片段时,它会再次发出请求并更新recycleview,即使数据已经加载过.所以为了避免这种情况,我使用了一个静态布尔变量来检查数据是否已经加载.这样可以避免重复的网络调用,但假设我正在使用应用程序并且数据已经加载但是如果数据是从后端服务器更改的话不会反映在我的应用程序中,因为布尔变量将在首次加载时设置为true,并且不会进行任何其他api调用.那么标准方法是什么呢?

android android-fragments android-recyclerview

3
推荐指数
1
解决办法
108
查看次数

Python-yaml:yaml.reader.ReaderError:不可接受的字符

我正在使用发票2数据库进行发票解析。该库在 YAML 中预定义了模板,用于解析发票。但是当我运行示例时,它给我所有模板的 YAML 解析错误

将其运行为:

invoice2data --input-reader tesseract FlipkartInvoice.pdf
Run Code Online (Sandbox Code Playgroud)

例外:

Traceback (most recent call last):
File "/home/webwerks/.local/bin/invoice2data", line 10, in <module>
sys.exit(main())
File "/home/webwerks/.local/lib/python3.5/site-packages/invoice2data/main.py", line 191, in main
templates += read_templates()
File "/home/webwerks/.local/lib/python3.5/site-packages/invoice2data/extract/loader.py", line 88, in read_templates
tpl = ordered_load(template_file.read())
File "/home/webwerks/.local/lib/python3.5/site-packages/invoice2data/extract/loader.py", line 36, in ordered_load
return yaml.load(stream, OrderedLoader)
File "/usr/local/lib/python3.5/dist-packages/yaml/__init__.py", line 112, in load
loader = Loader(stream)
File "/usr/local/lib/python3.5/dist-packages/yaml/loader.py", line 44, in __init__
Reader.__init__(self, stream)
File "/usr/local/lib/python3.5/dist-packages/yaml/reader.py", line 74, in __init__
self.check_printable(stream)
File "/usr/local/lib/python3.5/dist-packages/yaml/reader.py", line 144, in check_printable …
Run Code Online (Sandbox Code Playgroud)

python yaml invoice app.yaml

2
推荐指数
1
解决办法
1万
查看次数