簡體   English   中英

在Android改造響應中獲取JsonSyntaxException?

[英]Getting JsonSyntaxException in Android retrofit response?

相關問題

Json響應是New line delimiter Json

{"type":"data","id":"xyz"}
{"type":"value","id":"xcf"}
....
....

我正在使用Retrofit發出請求:

public void getWarehouse(){

 //Generation of  RestAdapter
 RestAdapter adapter = new  RestAdapter.Builder ()
            .setEndpoint(URL)
            .setLogLevel(RestAdapter.LogLevel.FULL)
            .setLog(new AndroidLog("= NETWORK ="))
            .build();

 //Making request to API
 adapter.create(WarehouseAPI.class).getWarehouse()
        .subscribeOn(Schedulers.newThread())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(new Observer<Response>() {
         @Override
         public void onCompleted() {
             Log.d(this.getClass().getName(), "OnCompleted ()");
         }

         @Override
         public void onError(Throwable e) {
             Log.d(this.getClass().getName(), "Error:"  + e.toString());
         }

         @Override
         public void onNext(Response response) {
         System.out.println("test");

         }


       });

}

我可以在Android Studio console看到響應,但出現以下錯誤:

Error:retrofit.RetrofitError: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 2 column 2 path $

錯誤的可能性

  • 響應位於NdJson ,無法正確解析

  • 如何正確解析?

正如@ trevor-e所提到的,您必須實現一個自定義轉換器來處理ndjson格式。 查看以下鏈接以獲取入門指南:

改造—定義自定義響應轉換器

還可以從以下位置檢查StringConverter: 如何使用Retrofit從異步回調返回String或JSONObject?

您可以將響應轉換為常規字符串,然后將每一行解析為一個JSON對象,然后從那里開始。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM