Android截取数组的方法,android – 使用Retrofit获取Json数组

news/2024/7/3 18:00:58

嗨,我正在尝试解析列表中的以下JSON响应

{"beers":[{"id":"1","nombre":"Larzobispa","localidad":"Alcorcon","provincia":"Madrid"},{"id":"2","nombre":"La Cibeles","localidad":"Madrid","provincia":"Madrid"}]}

我使用以下代码

我的界面

public interface AbebeerApi {

@GET("/beer_app/beers")

List listBeers();

}

实施AbebeerApi

Retrofit retrofit = new Retrofit.Builder()

.baseUrl("end_point_url")

.build();

AbebeerApi service = retrofit.create(AbebeerApi.class);

并呼吁创建服务

List beers = service.listBeers();

我没有在啤酒清单中得到任何回应.我的应用程序关闭,我在logcat中没有得到任何信息.

这是我的POJO课程

public class SingleBeer {

int id;

String nombre;

String localidad;

String provincia;

//getters and setters

}

有人可以帮助我吗?

先感谢您

编辑:我告诉你我的PHP代码,以防它有什么问题

if (mysql_num_rows($result) > 0) {

// looping through all results

$response["beers"] = array();

while ($row = mysql_fetch_array($result)) {

$beers = array();

$beers["id"] = $row["id"];

$beers["nombre"] = $row["nombre"];

$beers["localidad"] = $row["localidad"];

$beers["provincia"] = $row["provincia"];

// push single product into final response array

array_push($response["beers"], $beers);

}

// success

$response["succes"] = 1;

// echoing JSON response

echo json_encode($response);

mysql_close($localhost);

} else {

// no products found

$response["success"] = 0;

$response["message"] = "No beers have found";

// echo no users JSON

echo json_encode($response);

mysql_close($localhost);

}

我创建了我在setConverter方法中添加到我的RestAdapter的LenientGsonConverter类

解决方法:

RestAdapter retrofit= new RestAdapter.Builder().setEndpoint("end_point_url")

.build();

AbebeerApi service = retrofit.create(AbebeerApi.class);

service.getBeer(new Callback() {

@Override

public void success(BeerResponse beerResponse, Response res) {

// Use beerResponse for response

}

@Override

public void failure(RetrofitError error) {

}

});

这是你的界面.你应该添加Callback方法.在回调中你应该通过你的POJO.

public interface AbebeerApi {

@GET("/beer_app/beers")

public void getBeer(Callback callback)

}

我正在回答这个api.

{"beers":[{"id":"1","nombre":"Larzobispa","localidad":"Alcorcon","provincia":"Madrid"},{"id":"2","nombre":"La Cibeles","localidad":"Madrid","provincia":"Madrid"}]}

问题是你试图直接传递List.您应该创建两个类来获取响应.第一个BeerResponse仅用于列表,在第二个类中你应该声明你的json对象意味着id,nombre和all.Moreover主要导入的东西是你的api字段名称,你的POJO的字段名必须相同.如果要更改POJO的字段名称,则可以使用GSON注释@SerializedName.

public class BeerResponse{

List beers;

//getters and setters

}

public class SingleBeer {

int id;

String nombre;

String localidad;

String provincia;

//getters and setters

}

标签:json,arrays,android,retrofit,pojo

来源: https://codeday.me/bug/20190628/1314885.html


http://www.niftyadmin.cn/n/3567792.html

相关文章

cannot load such file -- readline

http://hot88zh.iteye.com/blog/1315037

20210706circulation、break、continue、strcmp

#include<stdio.h> #include<string.h>//因为引用了strlen&#xff0c;scanf&#xff0c;strcmy函数 #include<windows.h>//因为引用了sleep函数 #include<stdlib.h>//因为引用了 system int main() { int i 0; char password[20] { 0 }; …

定义控件Android+简书,【Android群英传】——第三章:Android控件架构与自定义控件详解...

之前学习了《Android群英传》,不过当时时间很零碎&#xff0c;很多问题没有深究、理解&#xff0c;趁着放假&#xff0c;认真回顾了之前的代码&#xff0c;同时解决了之前没有解决的问题&#xff0c;这里只是记录一下写Demo过程中遇到的问题及解决办法&#xff0c;具体笔记都在…

android工程构建工具,如何升级Android Studio 2.3以构建工具25以修复“SDK Build Tools修订版(21.1.2)对于项目来说太低了所需的最低要求是25.0.0”...

参见英文答案 >Error:The SDK Build Tools revision (23.0.3) is too low for project ‘:app’. Minimum required is 25.0.0 7个我应该在哪些配置变量和值中设置升级到Build Tools 25.0.2的位置&#xff1f;在Android Studio消息之后,…

20210709 goto语句 猜数字 99乘法表

#include<stdio.h> #include<math.h> #include<string.h> int main() { //shutdown -s -t 60 关机指令shutdown,-s:设置 -t时间 60s //shutdown -a 取消关机指令 char input[20] { 0 }; system("shutdown -s -t 60"); while…

c三子棋主程序

#define _CRT_SECURE_NO_WARNINGS 1 //三子棋 #include"game.h" void menu() { printf("**********************\n"); printf("**** *1.play *******\n"); printf("**** *0.exit *******\n"); printf("*****…

linux调用jar路径问题与解决

为什么80%的码农都做不了架构师&#xff1f;>>> 直接写jar&#xff0c;报错找不到&#xff0c;必须写完整路径 /usr/local/java/jdk1.8.0_144/bin/jar -xvf /MemberSheep/shpcoin180829/Shpcoin.war java -version能打印出来为啥jar不行呢 # java -version java ve…

android调用本地js文件上传,js 通过 jszip、JSZipUtils实现本地上传zip文件或者远程zip文件解压并获取文件中的内容...

测试&#xff1a;1、html中引入js库2、拉取文件并解压的方法function getRomoteZipFile(){return new Promise(function(resolve, reject) {// step1 请求文件JSZipUtils.getBinaryContent("http://**/***.zip", function(err, data) {if (err) {reject(err);} else …