问题描述
相关
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
,无法正确解析
题
- 如何正确解析?
1楼
正如@ trevor-e所提到的,您必须实现一个自定义转换器来处理ndjson格式。 查看以下链接以获取入门指南:
还可以从以下位置检查StringConverter:
您可以将响应转换为常规字符串,然后将每一行解析为一个JSON对象,然后从那里开始。